Navigating the Early Dev Career
I’ve been asked a few times by Junior Developers what advice I have for them. They normally see that I’ve programmed in numerous different programming languages and want to know how I got there. My advice is somewhat different than what you might expect. There are people that went to college, worked an internship, and landed a job with a major company. I decided not to take that approach. This is only my opinion and might not be the best solution for everyone. I believe this will best be received by people with an entrepreneurial spirit.
Dear Jr. Software Developer,
I guess the best way to answer that is to start from the beginning. I was born on… just kidding. We’ll fast forward a few years. I was in “pre-med” which is a Biology Major/Chemistry Minor. I took classes and although I had a near 4.0 average, I just wasn’t satisfied with the work. I found myself creating small websites (HTML/CSS) and reading programming books for fun. After completing my 3rd year as a Bio major, I decided to make the switch to a Computer Science major.
At that point I had a few years of College Experience under my belt so I instantly sought after an internship. I barely started my Introduction to Programming class when I got the job with my current company. Honestly, it was pure luck. They contacted me and I just went for it. Luckily after a few months of working for them, I was able to resolve all of their problems. The solutions weren’t pretty, but they worked.
I quickly saw the limitations of HTML/CSS and got into PHP because someone at my previous job mentioned that the site was written in PHP; it was like drinking through a fire-hose. I had to create an e-commerce site with basic programming knowledge. But I did it. The site’s been redesigned since then 🙂
I would work from 7:00am to 2:30pm, go to class until 6:00pm, get home at about 7:00pm and study PHP for the next 4–5 hours.
After working there for about two years, I started looking to expand. I landed a job with a company that specialized in renewable energy financing and created their entire system, that I believe they still use, in PHP. I told my wife that at this point I have 1 of 2 options:
- Continue school or
- Continue work.
I opted to continue work. I took a small break, about a year, and focused on work. Working for a distributor and a finance company felt like 2 jobs.
I wanted to cut that down. Even though the money was great, I was working 80 hours a week. So I looked at getting my name out there in a smaller, niche environment. I developed relationships with the distributor’s suppliers, and since I was already working for the distributor, it wouldn’t be that big of a leap to create software for them. The database setup, etc, would be nearly identical. In 2012, I started working for the first vendor.
After that I suggested to the owners of the distribution business that we should partner up and open an e-commerce business together. We did and I only closed it down last year because I was planning on leaving the industry. I’ll explain that soon.
After working for the first vendor, and running my own business for about 3 years, I formed a relationship with a much larger vendor; I started to work there as an SEO consultant.
There were numerous other smaller companies that I developed software for, but I kept going back to my niche. Moral of the story, find a niche and get your name out there.
After a couple of years at work, I decided to go back and finish up school. Why did I continue my education? I’ve seen many developers go through a weird phase. They achieve something that they’ve always thought that they wanted to achieve, and then they just quit. There’s a lot of Google employees that talk about this, making $200k+ and giving it all up.
For me, I just never felt satisfied with the work that I was doing. For whatever reason, I always felt comfortable in school. So I took on a class or two each semester until I completed my CS degree in 2019. During that time, my focus shifted even more. I wanted to become a computer scientist above being a good web-developer.
So while I was at school, I took advantage of each class. For example, for the Software Engineering project, the average number of lines of code written per student in that class was 250. I wrote 13,000 lines of code. For Android Development, we needed to choose 2 out of the 40 categories and incorporate them into our final Android project. I incorporated all 40.
All of this ties in with wanting a change in my life. I wanted to leave the industry I was in and do something more meaningful. I knew that the kind of jobs that I was going to be applying for required a college degree, preferably masters/PhD: these were research type jobs.
I took advantage of that at school as well. I found a professor and pitched an idea to him. I was always fascinated with Brain/Computer research, so I purchased an OpenBCI EEG scanner and started doing my own undergraduate research. The API was initially written in Node.js, so I learned Node as much as I needed.
This sparked a renewed interests in embedded systems, so I purchased a couple of boards, Arduino and Raspberry Pi and got to work with those. I studied C in school, but took it to a new level when I got into embedded systems. I used both of the boards to create a self-driving RC car. The Raspberry Pi functioned better with Python, so I went after Python. I used Python with OpenCV for vision analysis.
Once you start taking the approach that I took, programming languages start becoming easy. Everything just makes sense and you can pick up programming languages/frameworks fairly quickly.
I’m still debating whether to go back to school even though I do have professors that are asking me to come back and start my PhD there.
So here we are, my advice.
My advice, and everyone makes this mistake, is unless you’re Picasso, cheat…look at someone that’s Picasso already and try to work off of there. There are proven and tried formulas out there. Don’t try to reinvent the wheel. The customer doesn’t care that their website is 100% original. All they care about is how fast you can get them their product and how easy it is to use. This took a really long time for me to learn.
Lastly, if your goal is to become a good web-developer, ignore the approach that I took :). The following advice is mainly for front-end developers since I mostly get questions from them.
I hope this helps someone: if you’re asking these questions, I gotta say that you’re doing way better than how I started off…by asking someone directly to explain their approach. I wish you success in your journey. Also, don’t feel discouraged right now. It’s a weird time with Software Development jobs being in almost as much crisis as Restaurant/Hotel jobs…from what I hear. Work on your portfolio. Make some websites. Strive for some crazy goal like 20–30 sites. The more you create the more you’ll be seen and the more experience you’ll get.
If you wish to know more, here is an article that I wrote that might explain my mindset a little further. Also, don’t hesitate to ask.