Thinking about learning to code? If you're on the fence, the first thing I'll say to you is just do it. It has truly been one of the best decisions I've made in my life. For one thing, computers are fun. You get to play with things like terminals and text editors, learning more in the process about how these machines we take for granted actually work. The first week you spend using your terminal will teach you more about computing than most people who own a computer will ever know. For another thing, programming is immensely rewarding. You get to think abstractly and solve puzzles while building something that is actually useful and beautiful. Not to mention the fact that you can get paid to do this. Because, after all, as awesome as programming is, I haven't yet met a single person who enrolls in a bootcamp to learn a new hobby. We're doing this to get a job.
Whether you are thinking about a bootcamp, or already in one, this post is for you. I've been in my bootcamp for about four months. I made a lot of mistakes in the beginning that made the first couple of months harder than they needed to be, and now that I'm past the halfway point, I see people who are where I was four months ago making the same mistakes. So I'm writing this for them, and for you, dear code newbie, with the hope that you will be spared some of the frustration I experienced.
If you're in a self-paced program like I am, I know what you are probably thinking -- or at least are tempted to think. Chances are you want to get through your bootcamp as quickly as you possibly can, so you can go to work as a developer. Stop yourself right there. Learning to program is not easy, especially if, like me, the only experience you have going into this is some basic HTML and CSS. And while your end goal should absolutely be getting hired, while you are learning to program your focus needs to be on learning to program. Invest in yourself. Work to understand code, not just replicate it. Strive to understand your code so thoroughly that you can explain it to someone who has never written a line of code in their life.
Goals are good, and you should have a target end date. Ask your bootcamp for the average completion time for both full-time and part-time students. Take into account how much time you can devote to studying. Can you realistically spend 40-50 hours a week programming, or is 20-30 more likely? It will help you understand what you can reasonably expect from yourself. It's okay for your target to be optimistic, but if your goal is to graduate in four months, when the average is six to eight, you'll likely wind up frustrated when you're not progressing at your expected pace.
Make sure that you're setting reasonable goals for your learning as well. Your job is to learn how to program, not impress people with the complexity of your applications. The best advice I was given when approaching a portfolio project is to keep it simple, especially in the beginning. You will perhaps learn more from building a simple, working program, and trying to write clear, clean, non-repetitive code in the process, than trying to build a super complex application that drastically exceeds all the minimum requirements. I'm not saying don't stretch yourself. I'm not saying don't build cool things. What I am saying is, chances are, the minimum requirements for your portfolio projects will be substantial enough for someone at your skill level. There's no need to reinvent the wheel at this stage in your growth. The curriculum will challenge you enough, so don't make things harder than they need to be.
Learning to code is challenging. The concepts will seem abstract and foreign at first. You'll spend hours trying to debug complex problems, and you will get frustrated. When you're feeling peak frustration, you need to cut yourself some slack. Take a breath, and remember that you're learning. It's okay to make mistakes. It's okay to not understand something. It's okay to forget a concept and need to be reminded about it later. If you knew how to do it already, you wouldn't be in a bootcamp in the first place, so embrace the process, and trust that you can and will learn to code. Don't think you're alone, either. There are so many people who have gone through the same process you're going through. Never be afraid to ask for help when you need it. Don't be afraid to ask any question. Don't shy away from pair programming because you're worried you'll look foolish. Take some risks.
One aspect of programming that will be of enormous benefit to you is the community. Especially if you live in a larger metropolitan area, there's always something going on. Go to meetup.com and see for yourself. Depending on your location, you can often find groups centered around different programming languages, groups for beginners, groups for women, groups for junior devs, groups for moms, the list goes on. Programmers are generally extremely nice people, and these meetups tend to be inclusive, supportive, and welcoming to all comers. Get yourself out there. Sitting in a corner at Starbucks working on labs gets really old after awhile. Connecting with other programmers will make this experience significantly easier and more fun. Trust me on this.
If going to a meetup is too far out of your comfort zone, there are always vibrant online communities. Remember as you connect with people to never compare yourself with others. This is your journey, and just because someone else understands a concept faster than you do, or comes up with some brilliant solution to a problem, or writes a better blog post, doesn't mean that you are lacking something. Instead, look at those moments as opportunities to learn what they know. Also, make it a rule to always give something back to whatever community you become involved in. That's what community is.
I cannot overstate how important this is. Taking breaks periodically during programming sessions will help you focus, give you more energy, and allow your brain to process information faster. Don't take my word for it. Here's the pop psychology. If you're feeling overwhelmed at any point, and your bootcamp gives you the option, you should think about taking a few days off. You would be surprised when you return to programming how much knowledge you've retained and how much easier you can recall it.
You have to believe in yourself. You have to know that this will work. You will learn to program. You will finish this, and you will reach your goals. Don't let your own mind stand in your way. Don't give in to the temptation to believe that this is too hard, or that you can't do it. Does a lab seem too intimidating? Do you wonder how you'll ever be able to fulfill the requirements of a project? The best thing you can do is start the project anyway. Build it out one step at a time, and you will find, more often than not, that it wasn't as difficult as you imagined it to be, and that you know more than you thought you did. And even if you don't, you can always learn.
I hope this post will help you avoid some of the setbacks I encountered when I started programming. Good luck in your journey. If I can help in any way, send me an email.
Experienced devs, if you're reading this, what advice do you have for people starting out in bootcamps?
Soft skills are as critical as technical skills for a software engineer. No one works in isolation. Each person has to deal with teammates, colleagues, managers, etc. Therefore team interpersonal skills are essential too. Soft skills include things like good communication, honesty, teamwork, integrity, organization, empathy, etc.