Last updated September 10, 2020
How I became a Software Developer!
After many months of research, I’ve gathered the following information to help me with my career path as a Software Developer. I hope these resources are helpful to you. If you have additional information or feedback, please don’t hesitate to contact me and let me know. Thanks!
How To Start:
The best way to learn is to have a practical project that you can grow as you expand your coding skills. It can be a simple project, but you can add features and complexity as expand your knowledge of what’s possible! The project should aim to solve a REAL problem and serve a REAL need; that way you will eventually have real users and get feedback from real users.
Always be maintaining this project and make improvements, as you expand your coding skills and learn better programming practice. Learn to use GitHub or BitBucket to keep track of your changes.
This project will be a great talking point during your job interviews. Expect to answer questions about the project such as:
- What was the scope?
- How did the scope change over time?
- What was the most challenging aspect?
- How did you over come those challenges?
- What resources/references did you use to help you.
- What type of testing did you perform?
- What are some test driven changes you’ve made, if any.
- Why did you decide to use certain technologies?
- Development Framework
- Development Language
- Database Solution
- Hosting Solution
- What decisions did you make when designing the architecture?
- Authentication Methods Used
- Security Precautions
- Design Patterns
- What are the trade-offs you had to take?
- Why did you make such trade offs (ie, time complexity, space complexity, visual complexity, features, UI component, UX design, etc).
- How would you improve the program if you had unlimited time resources? (time to work on it)
- How would you improve the program if you had unlimited access to computing resources?
- If the program took off, and started gaining massive user base…
- What would be your concerns?
- What would be your actions?
Books That I Recommend:
- Cracking the Coding Interview: 189 Programming Questions and Solutions 6th Edition by Gayle Laakmann McDowel: https://amzn.to/2Tz0wIR
Which Language to learn?
Although some people will tell you that leaning to program is language agnostic (meaning it doesn’t matter what language you pick); the truth is that there is more to the answer.
If you have an ideal job in mind, start looking at the job postings for those jobs and reverse engineer the skills needed to apply for those jobs; if they require Java, then learn Java, if they require C#, then learn C#.
If you are flexible and simply just want to pick a language to learn, I would recommend picking Java or C#, because these are well structured language and are best for learning how to understand the fine structures and strict requirements. Whereas a language like Python is easier to read and learn, but allows you to take many shortcuts that you can’t do in Java or C#.
In my opinion Coding Bootcamp is a waste of time and money. Thanks to the abundant resources on the Internet right now; you can learn everything on your own if you know where to look. The biggest benefit of going to a coding bootcamp is the fact that they will give you coaching on interviewing skills and resume preparation. But you can also get all this practice with meet up groups and preparing with friends.
Some would say that coding bootcamp is great for individuals who lacks discipline at self-learning… While that is true, if this is the case, I think learning to self motivate is a more important skill that you should learn FIRST.
If you really think bootcamp is the right path for you. Make sure you thoroughly interview the schools to make sure they are the right fit for you. Some Bootcamps will require you to pay up front, others will invest in you in hopes that you will find a great job and give them a negotiated portion of your salary for several years. For more details: Visit the campuses and ask probing questions. Here’s a starting place to read reviews: https://www.switchup.org/rankings/best-coding-bootcamps
Online Computer Science Master Degree from Georgia Tech
While Bootcamps will show you the tools of the trade and teach you to use them via practical coding projects… Bootcamp programs lacks the computer science fundamentals (such Advanced OS, Network Security, Complier Theory & Practice). A traditional Computer Science (CS) Master Degree will enable you to develop better software because you know the finer nuts and bolts that go beyond just compiling your code.
The whole Georgia Tech Online CS Master program will earn you a bonafide MASTER Degree in Computer Science. The GREAT thing is that it is all online, it only costs ~$8000, and takes about 1.5 years to complete (or less if you not working at the same time). More Info @GeorgiaTech.
You can even audit/watch all the material for FREE go here: www.udacity.com/georgia-tech
FREE Online Resources:
- Professional Georgia Tech CS videos:
- Course Curriculum:
- YouTube Channels:
Whiteboard Coding Questions:
Leetcode & HackReactor: These are two websites where you can sign up and practice coding interview questions. I highly recommend being able to optimally solve EASY and MEDIUM level questions from this website. Being able to answer these whiteboard questions will give you the technical preparation you need for the interview.
I love this Udemy course (Mastering The Coding Interview). It is inexpensive as well, it should only be $10-$15, look for online coupon codes. Follow me on instagram @utechpia.dev and DirectMessage me, I’ll give you a super exclusive discount code that’ll take it down to under $10!
CoderPro: http://coderpro.com/utechpia <– exclusive discounts code if using code “utechpia”
AlgoExpert.io: http://algoexpert.io/utechpia <– exclusive discount code if you checkout with the code “utechpia”.
Interviewing Skills: http://techinterviewpro.com/utechpia <– exclusive discounts code if using code “utechpia”
Here’s my review on TechInterviewPro:
Again, we mentioned this at the start of this Blog Post. There is no better way to build experience than to work on a project. The BEST projects are those that set out to SOLVE a real problem; build out the solution and even go as far as deploying it. You’ll learn a lot from launching a real application, you’ll get experience handling customer feedback, providing technical support, monitoring security, performance, and more. You want to work on a project that is meaningful to the world… As my wise mentor often tells me: You want to pick a project where, if it takes off and flies, it can become your startup company, and you won’t need to worry about interviewing for a corporate job anymore! 🙂
You need to create a strong LinkedIn Profile, here’s a video that will help you get started: