After training 100s of developers at multiple bootcamps, I believe it is my responsibility to share my learnings on what makes an excellent student and what steps you can take to survive and thrive in an intensive software development bootcamp.
Before I dive into the main content here is a little background. I teach web development bootcamp in Houston for DigitalCrafts. The length of the bootcamp is 16 weeks. The students at bootcamp come from different backgrounds. Some students just graduated college while others have been working in different fields for few years. Needless to say most of the students have little or no prior programming experience.
After you have applied and got into a bootcamp don’t just sit and wait for the bootcamp to start. Use this time wisely and prepare for the bootcamp. You can start by going through online coding exercises, reading books etc. Preparing and exposing yourself to programming is going to give you a much better idea of what it is like to be a software developer. The time you are going to invest in preparing for the bootcamp is going to pay dividends once the bootcamp starts. I had few students who were using Mac for the first time during their bootcamp and they did not took the time to be comfortable with the new environment. This resulted in frustration and they had to invest additional time to become comfortable with Mac and macOS.
Every morning I give a 2–2.5 hour lecture (with breaks in between) which is based around understanding and coding a feature using a new concept we learned in the class. During the lecture, I advice students not to type code in their computers. I have experienced that when students are typing code and trying to follow the instructor they are not paying attention to the concepts discussed in the class. Most of my top students simply use their computer or even paper and pencil to take down notes instead of constantly trying to follow every keystroke made by the instructor. Remember it is a coding class not a typing class.
Don’t be late to class… ever! Bootcamp is a faced paced environment and if you miss the first 15–30 minutes of a lecture then you have missed the big part of the main content. You have to form the habit of being on time. If you are not punctual during class time then how can you be punctual when you are working at a job. I am strict when it comes to being punctual in class. Students arriving late in my class have to do extra homework or assignments.
Nobody likes to struggle but trust me when I say this that you are going to learn the most when you are struggling. Deep learning only happens when you are struggling. If you are asking for help every 2 minutes then you never ventured into the deep learning phase. Give yourself at least 30–45 minutes of struggle before you reach out for help. Sometimes you hit brick wall after a brick wall. Don’t look at it as failures but look at it from an optimistic point of view. You did not fail you just found 10 ways that it will not work. Most of my best students learned the most during their struggle phase and ended up much stronger and better than the students who were constantly asking for help.
Coding is not like open heart surgery, if you make a mistake nobody dies. Yet I see so many students afraid of writing wrong code. The worst that can happen is you will get compile time errors and you may see red squiggly lines in your code editor. Don’t be afraid to type code that does not work. Nobody writes perfect code the first time. Learn from the errors you receive and move forward.
One of the biggest difficulty for a new developer is the ability to break the problem into smaller pieces. Always think about the solution is small steps. This does not mean that you should blindly jump into implementing a solution which has nothing to do with the rest of the application but it means that you should have an idea of how you are going to implement the solution but you should execute your plan in small steps.
I know it is a bootcamp and you are here to learn to code but that does not mean that you should not take any breaks in between. I suggest taking 10–15 minute break after every 2 hours. Taking small breaks will recharge your batteries and you will be able to tackle the problem with a fresh mind and with a different angle. There has been countless number of occasions where I was stuck on a problem for few hours, only to solve it while taking a shower or going on a long walk. Next time you are stuck on a problem, go and play a game of ping pong :)
Along the same lines always try to stay fit and healthy. Programming is mostly a sitting job and sitting is the new cancer. After you are done for the day, go out for a long walk, swim, run, weight train, yoga or anything else. There is no substitute for your health. Let me repeat that! Your health is the most important thing in the world… period.
Big part of programming is the ability to search for solutions. It may sound easy but I have seen a lot of people struggling with searching. The reason is that sometimes you don’t know what you are searching for and other times you get overwhelmed with the results. Searching is a skill that develops overtime and if you are in the same boat then understand that it gets easier as time goes by.
This is my number #1 advice to all students. Start a project, any project using any language and framework. The project has to be something that you are passionate about, without passion you will loose motivation. Use the skills that you are learning in the bootcamp and apply it to your project. You will be amazed that how much you will learn by working on a real project. If you live in a city where there is an active civil user group then you can always work on much needed government projects.
Nobody knows everything! There will be lot of times when you will be stuck. Do you best and try to solve the problem for 30–45 minutes. If you are not able to solve the problem then ask your peers or the instructor. Apart from that you should get yourself familiarize with online forums like StackOverFlow. Create a free account on StackOverFlow and search for your question. It is highly unlikely that someone has not posted the same exact question. If your question is unique in nature then don’t hesitate your post your question. Remember to return the favor in few months when you have learned enough to answer questions on online forums.
Software programming has changed a lot over the course of a decade. No longer you have to sit in your mother’s basement and code 18 hours a day while eating Cheetos (although that sounds like fun). Now you need to be social and market yourself continuously. One of the ways to create your awareness if to start a blog. You can use free services like WordPress, Blogger etc. Your blog are your thoughts about anything. You can discuss what you learned today in class or how you solved a particular problem. Your blog is your place where you can be you.
User Groups is an excellent way to meet people and make connections. Even if you are just starting out, I would encourage you to attend user group meetings at least once a month. At the user groups try to talk to people and take genuine interest in their work. The connections you make at user groups can play an important role during your job search in the future.
The habit that you have formed during the course of a bootcamp will play a vital role in structuring your life. Make sure you practice every single day. Learn something new every day. Read books and blogs and absorb as much knowledge as you can.
I have been developing applications for over a decade but I still wake up excited every morning, eager to learn something new. I hope that you stay curious and passionate throughout this never ending journey.