An Optimized Approach for Beginners
You have friends that are developers or you just have that itch to start after seeing the developer lifestyle. It speaks to you and you’re eager to begin. You tell yourself that a month is enough to become proficient but you don’t know where to start.
How Much Time Will It Take?
Much more than a month; I can promise you that. This is what everyone goes through. For whatever reason, a large number of pre-programmers think that they can become developers in one month; some are more conservative and say three. Three months is usually an optimistic timeframe that seasoned developers give themselves when they want to learn a new language. You’re looking at closer to one-to-two years. The more time you put in daily, the closer you’ll inch towards the one-year mark.
Where To Begin?
If you’re in school for programming, that’s where you begin. Focus on your projects and strive to be an overachiever. When you get a project, pretend like you’re getting paid to do it. Complete the projects in full and do anything additional. I remember one such scenario when I took a course in Mobile App Development. Even though I already had years of programming experience, I had minimal mobile development experience. For the final project, we needed to pick 3 features and implement them into an application of our choice; there were 40 possible choices. While everyone picked their three, I implemented all 40. I wasn’t looking for extra credit or a pat on the back. I was taking that class to learn mobile app development and wanted to take full advantage of it. Keep repeating this and focus on the computer science fundamentals. It’ll be significantly easier for you to pick up a language/framework when you truly understand the fundamentals of programming.
If you’re not in any sort of programming curriculum, you have an advantage and a disadvantage. As long as you know your end goal, and how to get there, you can skip all of the core classes that are required by colleges and spend your time focusing on programming. You’ll eat and breathe code 8 hours per day and will accelerate your journey.
There are a few drawbacks. You’re more likely to skip the difficult concepts since you’re not accountable for completing your assignments. You’ll build that calculator a hundred times but will be reluctant to move past it. The other drawback is that you won’t have a curriculum to follow. College courses are designed to build off of each other. You might start skipping to concepts that you’re just not ready for and will feel like you’re drowning most of the time. You won’t understand how anyone actually learns programming and your mind will keep telling you to quit, since this is not for you. This is when you should step back and realize that you’re not taking the correct approach.
What is the approach? The following is what I recommend to all new developers that ask me:
- Get an intro to programming book.
- Research the type of programming that interests you. Will you take the mobile app development path, web development path, embedded systems path, or something other path?
- Once you know your path, it’s time to research the type of programming languages used.
- Buy an introductory book or two on that programming language. Follow introductory YouTube tutorials at the same time.
- Get fully acquainted with YouTube. Time to find application tutorials.
- Learn other necessary programming concepts like version control and how to use Project Management Tools.
- Build a portfolio. The more applications that you build, the better.
- Get an internship or an entry level job. Consume everything from the experience.
- Move to a mid-level position a couple of years later. Again, consume everything and start observing how senior level positions behave.
- Get your senior level position.
Your First Programming Book (1–3 months)
You’re going to read this book more than once. Get a book on Java or a similar language that is strict on enforcing the fundamentals of object oriented programming. The absolute best way to read a book like this is as follows:
- Read a maximum of one chapter per day.
- Before you read the next chapter, quickly skim through all of your previous chapters.
- Once you complete the book, start all over and reread it in full detail.
You’re probably going to grasp the first 2 to 3 chapters relatively easy, especially if you paid attention in math. You’ll start to visualize what a function/method is and how it relates to math.
The next chapter is going to be brutal and you will sweat, profusely. What just happened? You were cruising and all of a sudden you got smacked by that massive learning curve. You have no idea how to progress from here. Research the specific topics online and try to understand them. When you finally finish and you feel tense, start from the beginning. You will have a much better understanding the next time around. There are also times when you read a programming book and it says, “just write the code like this and we’ll explain what it means in a later chapter.” That just means that there are fundamental concepts that you haven’t been thought yet. Once you get to that chapter that explains it and then reread the chapters before, everything will make perfect sense.
Upon completing the book, take a couple of days off and then reread it again in full. This will help you solidify the concepts. You’ll be amazed at how much you now understand and how much you’ve missed, even though you felt like you read the book a hundred times by now.
Research the Type of Programming That Interests You (Month 4)
You may want to get into mobile app development, but you don’t know what you don’t know. Research the types of programming languages that are used. For example, are you interested in building Android, iOS, or cross-platform apps? Those are going to require different programming languages. Where are the developers the happiest? Where do you see yourself in the future? Do you breathe Apple products? Do you want to just build iOS native apps? Time do decide whether you want to learn SwiftUI or UIKit.
It’s Time to Research the Type of Programming Languages Used (Month 4.5–5)
Want to get into web-development. That’s an entirely new can of worms. You have to know the fundamentals before you even start, like HTML and CSS. Do you want to be a frontend or backend developer? Do you know what the difference is between frontend and backend? Are you looking for the trendiest programming languages or are you interested in stable enterprise level languages? These are decisions that you’ll have to find out through your own personal research. There are thousands of articles and videos where individuals describe their careers with a particular language.
Buy an Introductory Book or Two on the Programming Language of Your Choice. Follow Introductory YouTube Tutorials at the Same Time. (Months 6–9)
Once you know your path, and how to be successful in it, it’s time to get a book on that programming language. You should know your prerequisites now; if there are any, then you’ll want to read those books first. For example, if you want to be a frontend developer using ReactJS, then you’ll need to know HTML, CSS, and the fundamentals of JavaScript. You’ll probably also want to get acquainted with a CSS framework like Bootstrap or a utility framework like Tailwind. Only once you’re comfortable with those fundamentals will it be time for React.
To help you accelerate your learning process, follow a few YouTube tutorials at the same time that you’re reading your books. These shouldn’t focus on building apps, but instead should focus on the fundamentals of that programming language or framework/library.
Get Fully Acquainted with YouTube. Time to Find Application Tutorials. (Months 10–12)
Now that you understand the concepts, it’s time to follow along and build some applications. You could have done this before, but there is one reason why that was a bad idea. If someone asked you to rebuild the app that you just spent 6 hours following along on YouTube, you wouldn’t be able to. You will still struggle now, but your mind will have been molded enough that you might have a general idea. Go through as many of these tutorials as possible. Once you’re done with them, attempt to recreate them yourself without getting assistance from them. Google your questions if you get stuck. Look up answers on StackOverflow. Do the things that developers do, but don’t cheat yourself by following along again.
Learn Other Necessary Programming Concepts Like Version Control and How to Use Project Management Tools. (Months 13–14)
If you’ve made it past the one year mark, then you’re probably serious about programming as a career. It’s time to get acquainted with the tools that programmers use like Git, GitHub, BitBucket, Jira, Confluence, Asana, Trello, etc. The internet is your friend. Do you research and practice using those tools. They’re part of any regular working environment. It’s also a good time to start watching videos on the daily work of a typical programmer. You’ll see things like standups mentioned. Research what developers do during standups.
Build a Portfolio. The More Applications That You Build, The Better. (Months 15–24)
You’ve already built a few applications while watching those YouTube videos. If you’ve made them your own and recreated them without watching those videos, upload them to your GitHub account. Look up real-world problems and attempt to create applications that solve them. These don’t have to be production ready applications, but you should strive to make them as polished as possible. The idea is to practice development every day and use the knowledge that you’ve accumulated over the last year and half. Focus on deploying applications in various environments; this will make your career easier, I can promise you that.
Get an Internship or an Entry Level Job. Consume Everything From the Experience. (Years 2–4)
Before you start interviewing, you’ll want to look up mock interviews and practice answering common programming questions. Once you land that entry level job, take advantage of it. The company and the more senior level staff will know that you’re not capable of solving the difficult tasks. They’ll keep pushing you slowly. Take advantage of that and absorb as much as you possibly can. This is your first work experience and you’re going to struggle. Understand that the company does not want you to fail. The more senior level developers are there to help, so make sure to ask your questions while you’re in this stage. This will boost your learning and your career.
Move to a Mid-Level Position. Again, Consume Everything and Start Observing How Senior Level Positions Behave. (Years 4–6)
You’ve received that promotion to a mid-level developer; congratulations. It’s time to take on more challenging tasks and start plotting your path to the senior level developer position. While you were a junior developer, you would not have had the time to observe what senior level developers were doing; you were barely able to focus on the tasks that you were doing. Talk to your coworkers and review their code. Take every suggestion during code reviews and implement it into your code. Your mid-level career will end sooner than you think.
Get Your Senior Level Position. (Years 7+)
The time has come and you’ll know it when it’s there. You’ll be assisting junior and other mid-level developers. The tasks will have gotten more difficult, but you’ll start enjoying the challenge. Other times, tasks will seem effortless. You’ll move to your senior level position. Breathe easy, you’ve made it. Now what? If you’re like most developers, you’ll look for careers past development and you’ll know exactly what to do next.