Ask HN: I just dropped out of college, should I do a coding bootcamp?
I want to work for a startup and eventually start my own (or start my own as soon as possible), because the corporate life doesn't appeal to me. The problem is that my CS program was woefully inadequate--the standard Java/C++ stuff with little exposure to many of the real world tools and practices (we never even learned how to use version control!).
I've been teaching myself Python and Django for the last few weeks, but I'm seriously considering one of the coding bootcamps like Hack Reactor/Dev Bootcamp/App Academy. I think they could really give me a good jump in the direction I want to go. The only downside is that attending one would basically eat up all the money I've saved up. Does anyone have any advice? Are these bootcamps worth it? I feel like at this point I'm not at the stage where I'm hirable to a startup or have the technical skills to start my own, and I'm hoping the bootcamps can get me to that baseline.
35 comments
[ 2.9 ms ] story [ 79.7 ms ] threadIt's incredibly frustrating to work on abstract coding projects only to have them reviewed by the TA and then thrown away. I'd much prefer to be working on real world stuff with impact, where I could learn by doing. And when I consider the amount of time in classes, it just seems incredibly inefficient compared to what I could be doing on my own or with the help of a bootcamp.
You've also thrown away your chance at meeting cofounders, because now your social circles are going to consist of workers who are largely not willing to give up their salaried jobs to take a chance, or they're in so much debt that they won't be able to even if they want to.
If you wanted to apply to YC with a cofounder, then they'll understand "we met in college." They won't understand "we worked together for 3 months at a random job." Relationships forged in college are much stronger than relationships found at work, so it's inherently risky to bet that you and your coworker won't get into a founder squabble and tank the company unless you've known eachother for years.
Good luck to you.
If you believe that only a certain pattern can truly change the world you are mistaken. In fact, that is the crucial mistake every incubator is doing. True innovation almost always comes from unexpected places.
I didn't do it just "because". I seriously wouldn't recommend dropping out despite me doing it myself.
College helps you with reasoning that you wouldn't otherwise have. I'm using a lot of my formal CS skills now more than I ever have ( I mainly work in the deeper end of things as far as engineering goes vs more traditional web dev/ruby on rails or what have you) . It's a good skillset to have regardless of what you do though.
College teaches you how to learn and if you're lucky the fundamentals. It's not there to churn out engineers despite lots of colleges saying that they do. You learn a lot on the job.
You can be self taught and do relatively well in CS, but be open to criticism and improvement.
At the time I did it I thought I was hot stuff being a freelancer. You learn very quickly that there's a lot of people smarter than you and that there's always something to learn.
I'm going to just warn you to tread lightly and always be open to learning from whoever you can.
If you're not learning the engineering basics or methodologies in your CS program, then you need a better college, not a coding bootcamp.
I would also recommend that you finish your program. When we don't have a concrete plan for something else, the path we are on currently is usually still the best. In your case, it doesn't look like you have a startup that you are building and has investors, traction, etc. So, you didn't leave because there was much greater return on value on your time doing something else.
Now, I'm sure the material in the program is lower on the scale of reasons you are leaving and you have other reasons that are valid for you. But, it would be worth re-evaluating. It's hard sometimes to finish these things but it shows that you have determination and persistence. You can continue to do your side learning and improving your skills while still in school. Having a degree is still relevant. I know that here it sometimes seems like everybody gets work regardless of their education but that's not the norm.
A few ideas, straight out of my mind (please don't flame): - You should start a blog to document your journey anyway. Maybe you'll write a book about the whole experience later. - Build a website for college dropouts meetups? Maybe you can build something that's bigger than you. - Learn something, and become an expert at it. Learn Git/GitHub then write about it. Start a "become a Git hero in 6 weeks" blog? - teach yourself a niche technology, rather than Ruby on Rails: socket.io mastery on node.js maybe? or mongodb admin? or nginx admin?
Don't spread yourself too thin: you can't teach yourself everything at once. Get a Wordpress.com blog instead of hosting one... except if you want to learn it and then teach how to host your own Wordpress :)
Teach yourself something thoroughly, a skill that's rare enough (if you're THE guy who wrote a book on sails.js, who cares you dropped out of college?). D3.js could be another option.
HN is definitely the right place to target the perfect technological niche. I've only suggested a few that I've looked into myself.
Remember, you don't have much to lose yet. But DO something, learn something. You can be bold, but you must ship.
Where I'm from a college degree doesn't mean you are good in something. But show you are someone who can follow through on something instead of being a quitter.
Off course if there is something else you could show that you can reach a significant goal that needed some persistence please pursue it.
Irony I guess :) Hosting a wordpress site (on a VPS for instance) would be more interesting, somewhat less common. I suggested hosting, not setup :) It requires comparing VPS offers, choosing a distro, securing the server (iptables/ssh), setup for MySql & Apache, installation of Wordpress, setup of a cache (with memcached?), backup strategy... It could be much more than just a blog post, and I know many professionals who are stuck with shared web hosting and who would love some help with a VPS for their hosting needs.
When it comes to startups there are no guarantees. Risk is high almost always, with some exceptions.
The exception is taking on high risk with your startup.
I can imagine a pretty low risk scenario where you finish school, and start working in a relevant field programming. As you're making money and learning valuable skills you can spend your free time building your business. Unlimited runway and learning from your day job would increase your probability of being successful massively.
The billionaires and facebooks of the world are bad data points to model your future success by.
So at least for him, he was probably pretty sure of his success (a cushy acquisition as the very least).
http://www.thecrimson.com/article/2005/11/1/zuckerberg-to-le...
In other words, they were already exceptional before dropping out. That key point gets lost a lot of times. I think the exception is probably Jobs and WoZ.
You need experience, keep launching things so that you get a feel for real world development and the problems that come up outside of programming tutorials.
Look at some available programming jobs and read up on the specifics that they are looking for (I've seen API integrations mentioned a lot, etc), then learn that stuff.
If you are going to program for web then I suggest learning to love JavaScript and the DOM as soon as possible.
[I dropped out of UCF (Comp Sci) in 2007 because the company I co-owned was succeeding so much that I could no longer pass classes and keep up with the business]
The 'Head First' book series includes books for Python and Django as well as many other programming languages. You may also find that a good design patterns book will be valuable to your CS career.
I'm gonna assume you are aware of such online learning platforms as Codecademy, Khan Academy, Udacity, etc. These can be good starting points depending on your level of proficiency with basic syntax.
Beyond these recommendations, I'd say study open source code and code libraries.
That is the foundation for everything else. You will write much better Python if you are competent with C/C++. The truth is that the major languages are very similar. Yes one manages memory, one does not. One supports the ++ operator, one does not. And so on, but at a fundamental level they are essentially the same. The reason why C/C++ and Java are taught is because these languages are good for teaching the fundamentals: how memory works, data structures, functional vs object-oriented, etc.
Like others have recommended, an internship is a great way to get real-world experience. This is exactly what I did, and it helped me immensely. In particular, I worked for Delphi-Delco Electronics who make electronic automotive parts. My job was to automate testing of the automobile's main computer. Due to safety and regulations, testing was very rigorous so I had to learn how to be rigorous. That skill has helped me immensely throughout my career.
BUT that internship was no replacement for my degree. Without the degree I would be good at testing, but it would be quite hard for me to build an efficient web server because I wouldn't really understand how the CPU, RAM, etc work. While it is possible to learn all the fundamentals on your own, it requires immense discipline which most of us (myself included) do not possess.
That is my two cents. I wish you the best whatever you decide!
2. I'm familiar with the programs that you mentioned and the general hiring climate in SV/SF. Email me (listed in my profile) for a deeper discussion on your options.
I am currently taking a year off from college and am on the path to leaving entirely because I started freelancing a few months before making the decision to take a hiatus.
In school, I was not learning enough in a way and speed that matched my needs or mindset. I like to dive into topics and immerse myself in them quickly, while building cool things - I also like to make a living while doing so. A few months before I made the decision to take time off, I tried freelancing and gave myself a goal - if I could consistently make $X/month, then I would take a year off and work full time on freelancing to explore my options. Although this sentence could be an entire book, the short story is that I hit that goal and even started writing a book & building an audience^1.
Anyway, I decided to take the 1-year-long leave and start freelancing/writing full time. I quickly learned two things: The first is that I love to learn. The second is that learning from quality sources can be free or extremely cheap. Since college, the only direct payment I make for my education is $9/month to TeamTreehouse. Through things like TeamTreehouse, building clients' and personal projects, I've taken my skill level of creating iOS apps from beginner to advanced, which helped me increase freelancing income and gave me the knowledge to write a book.
In short, freelancing will allow you to learn more about a technology you're interested in, learn about building a business, make some kind of income, and hopefully connect you with some cool people and opportunities.
^1: I wrote a whole post about how I got into freelancing and writing a book on my website, but the main point is that you should start by building a small portfolio of projects and target businesses (especially local) that have money to spend. Freelancing/consulting is a science, and you can start making a decent amount of money relatively quickly if done right.