1. 程式人生 > >Coding Bootcamps: 10 Traits You Should Have

Coding Bootcamps: 10 Traits You Should Have

There is no shortage of web developer positions available in the U.S., and alongside that, no shortage of web development bootcamps. What once might have been seen as taboo, is now a widely accepted fast-track education system for those wanting to make their jump into the tech industry. And while these bootcamps are the real deal — there is inherently more risk to this decision. Most of that risk is based on your expectations, and what you’ll need to accomplish to be competitive.

In order to make a more concise decision, I’ve outlined the 10 traits I believe to be important for bootcamp and post-bootcamp success.

Traits for Success:

1) Highly Motivated by Challenging Situations

My personality is already geared towards bootcamp-like environments. I found out at the age of 20 that my mind was at its best in more challenging situations. While traditional university work was boring, I received my best grades at a private Spanish university where half my classes were in my second language. In a challenging environment where I was pushed to my limits, I was highly motivated and curious. I was fortunate enough to have this experience and understanding previous to my web development bootcamp.

You will have countless struggles and bugs. Not just during the program, but for the rest of your career. It’s essential to your success that these struggles excite you. Because despite frustration, there is no better feeling in the world than solving an issue in your code.

It’s also important to note how you channel that frustration when it hits you. Do you give up? Do you need a five minute break? Does it make you even more competitive to solve it?

2) Ability to avoid distractions

There will be a multitude of potential distractions that will take you away from your studies. In a traditional setting, watching a movie or hanging out with friends is completely normal. In a bootcamp setting, you should plan on having no social life. Every once in a while, we all need to take a break and replenish. But for the most part, expect to be coding every day for the majority of the day. Three months instead of 4 years for the same job? You’ll have to work incredibly hard to compensate for that time difference. On average, I spent 10–15 hours a day working on something project/code related.

There’s a difference between consciously taking a break from a challenging problem, and unconsciously being distracted by a video game or nearby ping pong table. Be intentional with how you spend your time. Individual distractions might seem harmless, but every distraction from studying adds up over the course of the program.

3) Self-awareness

In my experience, most people have (and admit to having) at least a few weaknesses throughout the program. Maybe for you it will be CSS, and for others it will be Javascript. My bootcamp frequently tested me to see what information I was retaining, and what areas I could improve upon. It’s important to be self-aware of your skillset and what topics you find challenging. Whatever you struggle with, you need to spend your limited free time studying until you understand it well. If you struggle with the backend (database/server), then make that the emphasis of your personal project. Be aware of what you struggle with, and take every opportunity to work on it until you’re equally comfortable. We, as humans, tend to avoid more challenging work. Override that default response for the sake of learning more.

4) Productivity

Waking up at 6am might make you feel more productive. But unless you’re coding and using that time wisely — you might as well sleep in. A key to your success will be developing productive habits for studying and organizing your learning experience. Make sure you can separate what makes you feel productive, and what actually produces results.

Your productivity will also revolve around your ability to debug and resolve issues in your code. At first, you will struggle endlessly with bugs and not understanding what is breaking your code. As time goes by, you will become a much better problem solver and need less help. Mentors/instructors are there to help you be more productive by spending less time debugging in the early stages. Without their help, you might spend hours upon hours trying to demistify some issue in your code. Bootcamps help speed up this process — but only so long as you ask for help. Never be afraid to ask for help. You’re paying to study in the same room as experienced developers so you can specifically avoid this pitfall.

5) Don’t have an ego

Even if you were an excellent student and knew how to code 10 times better than any junior developer on the market — if you can’t admit fault, stay humble, and learn from your superiors — you will not be successful. The only way to be successful, is to fail — and to fail often. Find humor in your mistakes, and realize that every developer makes similar (and just as embarrassing) mistakes at the start of their career. Do not be afraid to ask questions or ask for clarification. Some students are insanely talented at Javascript and understanding logic. And you might feel inferior because they’re “smarter” than you. But everyone, at some point, will struggle with a given topic. You cannot compare your skillset or what you learn quickly to anyone else in the room. Just focus on your own learning, and work harder when you struggle with something.

You are the least experienced developer at your first job. The senior developer has far more important issues to deal with than your ego. They won’t want to hire or work with you. So if you think you’re the best thing since ketchup, think again. Stay humble.

6) Have the proper motivation

Simply wanting a high paying job isn’t enough to motivate you throughout a program. You will be working on a bug in the final stages of your personal project at 3:30am, reading your 18th forum from StackOverflow. Money won’t even cross your mind at that point. You have to genuinely love coding. Because if you don’t, you won’t designate enough time or attention.

But a “passion for coding” as a beginner won’t be very intense. Passion, or an intrinsic motivation to do something, grows over time. You’ll be sort of interested in solving a small problem, and as the coding task grows — so will your interest. So, according to Cal Newport, your bootcamp experience is where you develop your passion. So you shouldn’t feel like a fraud if coding isn’t your favorite thing in the world after 20 hours of studying. Passion comes after hard work — not before.

7) You want to constantly learn

This isn’t a career path where you learn the material — and then you magically know everything. In order to be competitive, and to keep your career momentum, you’ll have to constantly learn. And the thought of that should excite you. You’ll never be bored, and you’ll always have DOCS to read or new tutorials to watch. You’ll have to keep learning once you graduate, and then keep learning at your first position, and then keep learning to move up in the tech world. It never stops — and that’s fantastic news for those of us wanting to learn for the rest of our lives.

8) You work well with others and on your own

Unless you’re seeking freelance work, you will constantly have to communicate effectively and work well with others. You’ll be collaborating and pushing code with a team most likely for your entire career — so you better be a team player. Which is also another reason why being humble is crucial. But being friendly and ego-free isn’t enough. You have to effectively communicate (second time I’ve written this, hint hint) with your team. Don’t write ambiguous merge requests. Don’t slack your superior with a 2 page essay on an issue you’re having. When you communicate with others, think of what information they need to understand you, and how to do as productively as possible.

But you also have to be great at working on your own: solving your own bugs, working from home in a productive way, creating and following a learning path to advance your skillsets. Working as an individual, in my less experienced opinion, is just as important to “bridging the gap” between where your company needs you to be — and where you are upon hiring.

9) Be able to network with others

Networking is huge in any industry, and your ability to find new opportunities for growth will stem from your network. It’s not like you should already be walking into tech meet ups, bumping shoulders with developers in your area. But eventually, you’ll want to attend meet ups. Often there is free food, people you can easily talk to (because unlike your non-developer friends, they want to have technical conversations), and important lectures from super smart people. Make connections and be a part of your city’s tech community. Socializing isn’t something we think of with a web development career, but it’s an important skill to foster your personal development.

10) Flow state

I could talk about this for hours, and I subjectively overemphasize flow state as a skill for web developers. But the ability to get lost in your work, where you forget what time it is — or even forget to eat — is crucial. Most of you have experienced this to varying degrees, but you probably haven’t studied it or specifically tried to enter a flow state while working. Long story short: those who can systematically enter flow state are happier and more productive than their peers. I have a link in the resources below to learn more about it.