Skip to main content

What Is The Best Way To Learn Software Development?

Many Doors

Self-teach? Go to a bootcamp? University? Bachelors degree? Masters degree? 
When you want to learn software development, there are many options. Which should you choose? It depends...



School Bus 

Grade School & High School

If you're in high school or younger, take the self-teaching approach! You have time. You're curious. You don't need the quickest path. You should take the most fun path.

Mark Twain once said "Find a job you enjoy doing, and you will never have to work a day in your life.” The best coders are the ones who love coding. This will set a good foundation for enjoying your career.

Take any classes available at your school and extend those learnings on your own. If your school doesn't have any classes (or you've taken them all), find some online tutorial classes. YouTube and blogs are great for this. Udemy, Lynda, Coursera, etc may have courses in areas that interest you. Books are also great, if they fit your learning style.

Learning on your own is important, but find other people who like coding, too. Learn with them. They'll help you & you'll help them. Shared interest will help you discover fun aspects of coding and that discover cool things you can do.

Build as many fun side projects as you can. Launch as many of your side projects as you can to the App Store of your choice or onto the web.

These self-learnings and projects will will give you excellent experience and perspective. These may even be used for school projects, college applications, and/or resumes - maybe even the next Snapchat.

Set your focus on getting into some University that offers a decent computer science (CS) degree. A University CS degree will be invaluable to securing your success in the software engineering industry.

Just make sure to stay curious & keep learning, as that’s my biggest complaint with CS grads - many seem to lack curiosity & interest in learning or trying new things. People with that attitude often get left behind the industry progresses. Don’t get burned out from being in school.

Your degree is important, but it is not the end of the road. It forms your launchpad. Coding gets even more fun after you launch. Your ability to do great things will open up to a world of potential. Don't forget, with computers - if you can think it, you can do it!



University Library Study

University - Bachelors

Sorry, bootcamps, I love you, but your shortcomings guarantee that Universities will rule the CS career path for the foreseeable future. Although bootcamps will tell you the University computer science degree is obsolete, it's just a marketing tactic. It's no where near true. 

Taking the University approach is (currently) hands-down the best way to launch yourself well into the software engineering industry. You’re going to learn everything that a software company expects you to know.

You’ll have NO problem with the interviews if you understood your data structures & algorithms classes. Your resume will get quick attention. You'll likely have had internship experience. You’ll be hired at a much higher salary. You’re much more likely to get a signing bonus and/or relocation bonus. You may even get stock. You’ll likely start at a higher position in the company. You’ll have a great foundation to learn from. The rest of your career will be much more secure than if you took another path. You'll always carry the ethos of your degree.

Here's the thing, companies will KNOW what you know if you have a CS degree. They'll question what you know if you took an alternate path. They'll also wonder if you're a hard worker and capable of handling complex concepts. Most "proofs" of your capabilities are subjective... except a CS degree.

If you’re single or even married without children, I would highly suggest getting a CS degree. Often the competitive schools are competitive because they're good & more people want to join than they have room for. So, if you can get into one of those, do it! If you are concerned about the competitive nature of the CS degree programs, find a university that does not have competitive entrance for CS. That ensures you won’t get “rejected” from entrance into the program.



Throwing Graduation Caps

University - Masters

If you already have a Bachelor’s degree in something OTHER than CS, you may want to consider a Master’s degree in a program that is setup for people switching into CS. Some Master’s programs are geared towards reinforcing the basics of Computer Science like you would get in a bachelor’s degree, but without having to go back for 4 years of study (or at least not having to get a ton of non-cs-related classes). There are many Colleges and Universities now offering programs like this.

This means, you’ll get the most practical learnings in the shortest time (usually less than 2 years), and with it you’ll get the credibility of having a Master’s degree in CS. Pretty legit! This gives you the ethos you need for a strong resume, and the training you need to excel in interviews.



100m Sprint Lanes

Bootcamp

But maybe you are in a position where you don’t have the time-flexibility to go back to school. It will never be convenient, but maybe it's not even possible for you to go for a Bachelors degree. Maybe you don't have a Bachelor's degree to go get a Master’s degree. Maybe you have too many responsibilities on your plate to go back to University PERIOD.

This was the situation I was in. I was the primary income in an expensive area (Seattle). I had a mortgage and other living costs that would eat up savings quickly. Plus, I had one child - with another child on the way. There was a short window to make this switch. Time was ticking. I needed a more creative approach. This is where bootcamps come in.

Bootcamps get their name from the intense amount of focused time you will need to put into them. But, while focused, it's shorter. Much shorter. Most bootcamps range from several weeks, to several months. It’s a very “practical” way to learn practical programming.

Remember that many bootcamps will require you give 100% effort… and then some. Many of us worked 12+ hours a day, 7 days a week for the entirety of the bootcamp. This will be the fastest way INTO the industry, but there are some notable drawbacks: 


1. Interviewing

Tech industry interviews are rooted in assessment of academia mastery - data structures & algorithms. Interview questions poorly represent the work you will be doing on a day-to-day basis.
An applicant's ability to interview well does not necessarily indicate whether they will be a driven & high-performing employee. This is unfortunate. But it’s how things have always been, so don’t expect it to change anytime soon.
Some companies factor this in for “junior” or “associate” level job opportunities. If so, that can help bootcamp grads get “in the door”, but don’t expect that kind of leeway to continue at higher levels.

You’re going to have to overcome your lack of knowledge by lots of study & training. If you don’t train to master interviewing algorithms approaches, as you get promotions & move up in your company, you may feel “stuck” there because you are not well prepared to interview for a similar-level position anywhere else.

2. Industry/Company

CredibilityYou don’t have the core data structures & algorithms training that other CS grads will have. This will have some impact in your ability to analyze complex engineering decisions, but for the most part will be a hit on your credibility and not on your actual ability to code.

Independent of your ability, you may not be perceived to be as “expert” as the CS grads. This stigma is more common in large tech companies. It may or may not be as prevalent in smaller companies.

3. Engineering Capabilities

You will have to do a lot more side-learning on the core foundations of the industry, if you hope to overcome those missed years of CS fundamentals training. Long-term, the lack of this fundamental knowledge of the lower level complexities of computer systems (hardware & software) will play out as you move up in your responsibility.

You may be expected to design complex systems that help your company stay on the leading edge (high efficiency, maximization of algorithm & processing capabilities, complex parallelization of processing, high scalability, etc). It is here that your knowledge gap will show most clearly.

4. Confidence

When you’re around a ton of people with reputable degrees (and good capabilities from that knowledge), it can impact your confidence. They're probably pretty smart.

It's hard to tell how your potential compares to the average CS grad, because your education was not equal. You may get an “imposter syndrome” mentality - thinking that you’re just faking it until you can catch up.

The benefit of this mentality is that it drives you to press in, press hard, not settle for mediocrity, and overcome your weaknesses with ever-progressing excellence. The drawback is that even with much learning, you are always wondering how you really “stack up” against the other people & their knowledge.

When will your side-learning be equivalent to their degree? Will you be ready for that bar-raising technical challenge? Who knows.

Your worst enemy is "not knowing what you don’t know". On the other hand, this issue isn’t exclusive to non-CS engineers - CS grads also deal with this.

Unfortunately, companies realize that your lack of a CS degree means the upper hand is in their court for interviews & negotiations. They often use this to justify lower salary offers and slower promotions.

5. Compensation

As an employee, your compensation may face similar hurdles. The company may justify this by your "need to increase your core tech knowledge"… but more likely than not they cannot qualify or quantify the specific "core tech knowledge" necessary to appease their desire... and even less likely to shed light on how that knowledge will tangibly impact you delivering better results.


Google Office

Conclusion

In recap, a University degree (Bachelors in CS or CS Masters) will give you the training & credibility to bolster your career, credibility, capabilities, and confidence. It may take a little longer, but I would argue that the end-result on a career is worth it if you can make the time.

I would only recommend taking the bootcamp approach in cases where University is not an option for you. In such cases, bootcamping-in is better than not getting in at all, and it's a completely viable approach. Just be aware of the drawbacks I mentioned above, so those don’t come as surprises to you later on.

clints image

Clinton J Nelson

Hi! I'm Clint. I'm A... Husband. Father of three. Software Engineer. Professional Engineer (structural). Sippy-cup filler. Carpenter. Mechanic. Entrepreneur. Archer. Follower of Jesus.


Creator of goodwyrk.com - the map based job search that uncovers hidden jobs. Come discover your dream job in your dream location.

Comments

Popular posts from this blog

How To Fix Blogger's Broken "Manage tracking your own pageviews" Page Link

&nbsp tl;dr Click the broken link, and manually change the broken page address protocol from "https" to "http". Boom. Works. The Goal: Better Stats When trying to determine what my stats were on Blogger, I noticed Blogger was counting every time I  looked at my own page. Viewing my own page really shouldn't count a "page view", so I figured there must be a place to turn off tracking myself. Turns out there IS a setting to do just this. If you go to Blogger > Stats > Overview, on the right-hand side of the page you'll see a link that says: " Manage tracking your own pageviews ". Yay! But when I click the link, I get this: Boo. :-( The Problem: Bad Link Address I did a quick google search for a solution, but didn't find anything useful. After investigating the page on my own, I found out what's wrong. Blogger has an "oops" in their system where they didn't update thei...

Is Your High-Speed Internet Slow? It SHOULD be FAST! It SHOULD have RANGE. Here's How To Fix It And Save Money Each Month.

Asus RT-AC86U Wifi Router - Family Approved! Summary Connecting  Asus RT-AC86U wifi router  to our existing combo modem/wifi-router fixed all of our internet wifi speed & range issues. We now have the FULL wifi internet speeds we've been paying for - everywhere in the house! Preface READ THIS FIRST: If you're connecting your computer to the internet by literally plugging a cable from the modem into your laptop/desktop computer, then this article is NOT for you. This article is for people using WIFI in their home and have SLOW speeds or inability to use the internet from everywhere in their home - even when paying $$$ for internet each month. The research I did and the results it got me have been astounding and I'm SUUUUPER excited to share them with everyone I know. I suspect many others deal with unacceptable internet speed issues, too. This is intended to free you from being stuck with slow internet while paying for fast internet - like I was. I hav...

Keys - The Often-Overlooked Multi Tool

Today, I was standing at the recycle container with a box that I wanted to break down. Unfortunately, it was taped to withstand the next nuclear war, and I didn't have scissors or a box-knife on me. I almost forgot that I was carrying my poor-man's swiss army knife (aka: house keys). I whipped out my house key, swiped down each side of the taped seams, and voila! The box broke down faster than a 1990 Chrysler. I realized that in almost forgetting about the usefulness of my keys, there are others who have probably never known that usefulness. Time to fix that. While I'll probably forget some here (like I almost did that day with the box), feel free to chime in on the comments and I'll add any here that I feel are pertinent. Without further ado, here are some ways that your house keys can come in useful (plus I've added helpful "key RISK gauge" in [brackets] to help you gauge the low/moderate/high risk to your key for each of the uses): Disclaimer:...