Advice for Jr Software Developers

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:

  1. Continue school or
  2. 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.

Throughout the years, I looked at what languages/frameworks were in demand. From an e-commerce business POV, I wanted to make sure that the language my site was written in would attract quality developers. I redesigned the site a few times in PHP/JavaScript. The vendors normally had their websites written in specific languages that I just adapted to. Throughout my career, I worked in PHP (CodeIgniter and Laravel), JavaScript (jQuery and React), Java, Python, Bash, C# (ASP.NET), and C. My E-Commerce business ran on Laravel/React.

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.

I would research trends that were happening in the web-development world and see where those trends were going. It seemed like everything was heading towards JavaScript, so I picked up JavaScript. With PHP, I started to expand into MVC frameworks. I started with CodeIgniter but quickly saw that Laravel was the PHP framework of the future, so I learned that one too. Nobody was really writing pure JavaScript at the time; everyone was using jQuery, so I learned jQuery. Then came React…so I learned React.

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.

Pick a language. I recommend JavaScript. Learn the ins-and-outs of that language and try to become an expert in it. Pick 2–3 front-end frameworks/libraries and learn those: React/Vue/Angular. Make sure that you have Bootstrap down packed. HTML/Vanilla CSS knowledge is without question. And keep focusing on that. Maybe venture here and there to gain some additional knowledge as far as back-end languages go, but if I was starting out, that’s the approach that I would take. Why? Well because you get into a situation where you’re at an interview for a JavaScript position, for example, and all they want to do is test you on the Syntax. I have 10+ years of experience and have been tested relentlessly on the syntax in every single interview. You would think that a Senior Software Developer position wouldn’t test you for that, but they do. So they’ll ask you something simple like “How do you find the size of the array in JavaScript?” You just finished working in Java/PHP/Python for the past 3 months and you can’t seem to remember the syntax. Is it sizeof(), size(), length(), etc? Why should the syntax even matter? It’s gonna take you a week to get back into it anyways. Well it matters to the company. You might think that you’ll just freshen up for each interview but when you start having daily interviews, it becomes a job in itself. You might even sound more inexperienced with 10 years under your belt than one person who focused on one language/framework and has 1 year of experience.

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.

 

Leave a Reply