Programming Bootcamps

nate_sl

shitlord
204
1
Little background: I'm 28 with an accounting degree from a state school. I did not go into Big 4 accounting out of school (shit grades). Although I make a good salary ($70k), I'm terribly bored with my job and I'm not learning any particularly valuable job skills. There is little opportunity for advancement in my current position. I'm really considering a career change... I figure at my age it's probably now or never.

I would like to get into software development. Over the next few weeks I'll be working my way through one of the extensive Ruby on Rails tutorials and solving some problems on GitHub. So far I seem to be picking it up pretty well, though obviously I'm a total beginner.

My question is this: If I complete the tutorial over the next couple weeks and think I have the desire and aptitude to make a career change, what is the fastest way to break into software development?

I have seen advertisements for these intensive 9-12 week coding camps and I'm wondering if they have any real value. The top tier ones seem incredibly selective... I'm not sure if I could realistically even get into one. The best ones (App Academy, Dev Bootcamp, Hack Reactor) typically have seemingly decent connections to the job market.

Obviously the other option is to bite the bullet and go back to school and get a CS degree. It would probably take 2-3 years and would be a huge investment of time and money, not to mention opportunity cost. At the end I would be a 30+ year old recent graduate with little experience outside of maybe an internship or whatever open source work I could do. In that regard the Bootcamps seem more attractive... They're faster and cheaper.

So, let's here it: do the camps hold any real value in the professional world?
 

mixtilplix

Lord Nagafen Raider
1,295
109
I highly recommend that you start by properly learning Ruby first before jumping into Rails. A lot of people will say the opposite but that's bullshit. Unless you have the basics of Ruby going in most of the stuff will go over your head or just seem like magic (which is bad in my opinion). Also being comfortable with the Linux command line is essential for doing anything Ruby whether it be Rails, Sinatra, or whatever. RVM will become your friend.

Two good basic Ruby resources:

The Bastards Book of Ruby

Learn Ruby The Hard Way Learn Ruby The Hard Way
 

chaos

Buzzfeed Editor
17,324
4,839
Nice. I'm learning bash and Ruby right now and php/PERL this fall. I have been doing the Codeacademy thing for Ruby and it is ok, not fully into it yet, focusing on bash.
 

Tenks

Bronze Knight of the Realm
14,163
606
Why did you land on Ruby? It was a hot language maybe 5 years ago but it is fairly burnt out from my experience at the moment. Also not sure if learning a scripting language like Ruby really teaches you much more than loops and boolean operators where real world programming involves far, far more.

-edit-

Actually that was a pretty stupid statement by me. If you want to program you need to first learn loops and boolean operators. I should stop posting prior to coffee.
 

Asshat wormie

2023 Asshat Award Winner
<Gold Donor>
16,820
30,964
I am doing this right now:

Coursera.org

Will also do the follow up course in june which seems to be a discrete math with programming.
 

nate_sl

shitlord
204
1
I'm learning Ruby on Rails because it's what most of these camps teach. For most of the good ones, you have to solve a couple problems during the application process and they're Rails problems. So primarily I'm learning Rails to prep for those code problems.

About it being burnt out, the folks at twitter might disagree.

*edit: if not Ruby, then what would you recommend? I'm so new that just starting with anything seems okay, but I guess there's no point in learning a dead language.
 

Noodleface

A Mod Real Quick
37,961
14,508
Even though it's dated and many disagree, I always recommend people start with C/C++. I guess it depends what you want to do with programming though.
 

Tenks

Bronze Knight of the Realm
14,163
606
It is too easy to get lost in the muck in C/C++. I don't really recommend learning it from the get-go. I'd personally start with Java since it is high level enough that you don't have to worry about malloc/free, pointers, pass by reference, bitwise and ugly returns but not quite so high that you don't learn the basics of OOP/D and object interaction.
 

Noodleface

A Mod Real Quick
37,961
14,508
I come from an engineering background.. so everything I do is related to C\C++, machine, assembly. Probably not the best source of knowledge.

I still think C provided me with a great foundation in which I can pick up any language now relatively quickly and efficiently.
 

nate_sl

shitlord
204
1
Well, since I've started down the Rails road and I rather enjoy the tutorial I think I'll stick with it for now. I figure at this point the best bet is just to get started doing something. After I complete a few projects maybe I'll have some idea of what direction I'd like to go in the future.
 

Khane

Got something right about marriage
19,875
13,393
Do you think you might like integrating disparate systems? Do you know/have any interest in XML and service oriented architectures? The reason I ask is because integration systems software development is one of the most lucrative software development fields to get into and the job market is wide open. There are not a lot of people out there who know integration software like Tibco, Microsoft BizTalk, Cloverleaf, Informatica (though that's more of an ETL tool) etc etc etc. It also opens doors for work in vastly utilized and oft ill understood data trading "standards" like HL7, EDI and anything healthcare related in general. It's a very sought after skill set and is always evolving (all software development is but integrating systems gives you a chance to work with a wide array of various types of software and systems). Every company has a need for integrating and it is very, very hard to find people who speak English well AND are good integration developers. It's always in high demand

I am an integration systems architect, my specialization is primarily Microsoft BizTalk with C# and WCF and I get calls from recruiters on a weekly basis. I've been doing it for 7 years now and it's always been that way. There is also a huge need for developers with this skill set for consulting firms so if you like/want to travel and work it's a perfect opportunity as well (though there are more than enough full time permanent positions available, at least here in the northeast). I've only been with my current company for a year and already had to turn down multiple other very lucrative offers because the entire package didn't fit my needs. It's a luxury not many people have being able to turn down jobs.

If you think you are interested in that type of work I'd recommend starting down that road sooner than later because that style of development is vastly different than your normal run of the mill .NET/Java type application development gig.
 

nate_sl

shitlord
204
1
Thanks for the replies. Khane, whats the best way for a beginner to learn? Rails is pretty straight forward... I can follow guides and tutorials and start making web pages today, even if I don't fully understand what I'm doing all the time.
 

Khane

Got something right about marriage
19,875
13,393
Web development is one of the more saturated markets for software work because that's what everyone who wants to be a developer thinks they want to do. If it's what you really want to do then by all means go for it but there is a lot of competition and you will have to set yourself apart to make real, good money in that field and it will take years to do that in most cases. You're already using github so that's good, stackoverflow is probably the best site out there in terms of information for developing. I would poke around and do some research on the subject matter, there are a lot of different, very specific pieces of software when it comes to integration. A solid foundation of the framework you decide to develop on is the first step.

If you decide you like a product (or rather, think the technology is interesting) that is built around Java learn that. If it's .NET learn that, etc. There is a series of books that are bar none the best I've come across for beginner programmers, they are the "Head First" series of books. Ask other people you know here and elsewhere that are developers what their work entails. Feel free to PM me if you'd like to know more about what it is I do. You will want to focus eventually on a specific kind of development but as you start out just gaining a basic knowledge of OOP and eventually design patterns is where you want to start, then increase the focus from there.

My recommendation is to figure out which framework you prefer and download the free IDE (whether it be eclipse for Java, Visual Studio for .NET or whatever else) and either buy or pirate good books. You can browse sites like safaribooksonline.com and read reviews to get a good understanding of what level of developer the books are aimed at. Always get books that are example driven and have hands on tutorials, it's the best and quickest way to learn and retain.
 

Hachima

Molten Core Raider
884
638
As far as demand goes Java > C#/C++ Python > Ruby. Go to a site like indeed.com and you can search for languages and see what type of work is involved. Ruby on Rails probably gets targeted for bootcamps with the ease of creating a database to go with your code and all the gems available that you can just download and plug into your code. Ruby as a scripting language can be useful even if you don't use Rails. Overall its not as marketable of a skill by itself though, but still some opportunity out there with it. Its not bad for getting familiar with development though.

I'm not sure how many places would hire people that only did a camp. I'd want to see some work done outside of the camp on your own. There are all sorts of expectations out there in the real world though. My previous job was mostly people with cs degrees but still a few without a degree but a lot of previous experience/aptitude on their own/other jobs. My current job area only hires MS/PHD grads and is on the opposite side of the table of the bootcamps. If you really are into pursuing it, I'd say a subscription toPluralsight - Hardcore Dev and IT Trainingand some good books would be much more effective. You really need to build something on your own after learning something new though, to really get a grasp on it/be able to have something to show to get a job.

In my undergrad I took a 2 week upper division foreign language class for 4 credit hours... It was insane and I had to memorize 400+ new words along with other material. A few weeks later I probably still retained 15% of everything I had learned... I imagine boots camps would be the same. You may go over a bunch of great material, but you will most likely forget it all just as fast.

If anything, the bootcamp mainly forces you to put forth the effort to do the learning since you have money at stake. With enough self motivation you could get similar results on your own.
 

chaos

Buzzfeed Editor
17,324
4,839
In my school, they start off teaching you Java to get the OOP principles in place and then expand on that later if you decide to take the programming track with C/C++ and other languages. Even if you're not doing the programming track they introduce php and scripting languages after java. It is hard to judge because I don't know any different, but it has been effective in my case and I feel like I am learning a lot and new concepts come pretty easily.
 

nate_sl

shitlord
204
1
Based on the feedback I think I'm just going to go at it on my own. Books, tutorials, and then hopefully jump into some kind of collaboration through GitHub.. I do agree that "cramming" doesn't really work, and the only real way to learn is to try, fail, succeed, repeat.

Right now I'm doing about 3-4 hours a day (in addition to my regular job) and that's about all my brain can handle. Another reason I'm not so wild about the camps... Don't think I'm the type of learner that really benefits from marathon sessions. Even at the (relatively) young age of 28, I need that digest and recharge time.

Also, based on the feedback I'm switching to JavaScript.
 

Tenks

Bronze Knight of the Realm
14,163
606
In my school, they start off teaching you Java to get the OOP principles in place and then expand on that later if you decide to take the programming track with C/C++ and other languages. Even if you're not doing the programming track they introduce php and scripting languages after java. It is hard to judge because I don't know any different, but it has been effective in my case and I feel like I am learning a lot and new concepts come pretty easily.
I was first taught on VB6, then C++ and then Java. I found it to be a confusing and rough transition. I should also note I learned VB6 and C++ in high school then Java in college. It was awkward going from a functional'ish/GUI/event based language like VB over to C++ from the onset. My teacher tried to ease us in using CMU's graphics library but I never really grasped OOP as a principal and then when pointers and bitmath came into the picture I quickly got overwhelmed. Then I went to college still somewhat unsure if programming is for me since C++ confused me and Java just clicked. I quickly grasped the concept of OOP, code re-use and integrating open source software. I'm now a C programmer after doing Java for 8 years of my life and it is back to being an awkward transition. I need to throw out all my concepts of OOP and move into a functional language without massive open source libraries and everything that makes Java easy. Again I should note I was never properly educated in some of the low level concepts in C because I don't have a Computer Science degree. I'm an excellent Java programmer, and programmer in general, but I do lack some of the fundamental theory.

The tldr here is basically go: Scripting --> Java --> Anything else. Scripting will teach you the basic format of programming. How to write code and how to solve problems with the limited functionality a computer provides but is extremely powerful. The next will teach you how to solve large scale problems in manageable objects that interact and play together. It will jam into your brain how to solve problems with maximum re-use and maintainability. In Java if you're copying and pasting it better be to refactor and move code up so it is used in multiple places. Not to be invoked again elsewhere. Then if you're still geeking on programming you can learn either a low level language or move to an even higher level language than Java. You can look at the functional paradigms and what they solve. You can look at the web frameworks. You can look into the BigData ecosystem. Honestly once you know Java you can basically do anything outside of writing stuff that communicates directly at the OS level because the ecosystem for Java is so enormous. And if you want to be employed learn Java because there is a good reason Java powers everything from the parking meter to the NSA's cluster.
 

Khane

Got something right about marriage
19,875
13,393
There is no reason to learn a scripting language before you jump into OOP. A book like Head First Java will have you off and running and understanding basic OOP principles and even get you to the point (by the end of the book) where you have a firm grasp of a lot of the functionality of the Java platform. I would not recommend learning a scripting language as a starting point if you are interested in Java or .NET. Just jump right in.

And tenks, the reason you had trouble going from VB6 to anything is because VB6 was an abomination and VB even still to this day is so syntactically different than almost every other programming language it's actually a burden to learn first. God I hate VB...

One other recommendation for you nate. Get your SQL skills up to snuff as well. No matter what you get into there is almost a 100% chance you will need SQL. We live in a data driven world.

Also, I've used the pluralsight tutorials Hachima linked in the past and they can be quite good. The subscription is very reasonable and they have a vast library of both e-courses and online training.

You mentioned you're moving to JavaScript. That's a good choice if you ask me. Once you get the foundation down you'll probably want to start working with jQuery (the defacto JavaScript library) and things like JSON to broaden your skillset.
 

Tenks

Bronze Knight of the Realm
14,163
606
While I don't discourage learning SQL (not like it is hard the language is tiny) you can just use an ORM in you're in the Java ecosystem to interact with the database as an object so you don't have to do manual queries. Although I seem to always write my own DAO and ORM instead of using something like Hibernate. I also haven't had to interact with a SQL database since we've made our big transition off Oracle to HBase. But some of our SOA teams still have MySQL instances up for their own business needs obviously.

I'd say worry about programming first before learning things around programming, though.
 

Khane

Got something right about marriage
19,875
13,393
You'll still need to know SQL because SQL is more than just CRUD operations. Things like Entity Framework make working with SQL databases way easier but you still need to know SQL. Knowing how to write a stored procedure, create views, table functions, how to join properly so your data is accurate, etc are all very valuable skills to have. And a developer with a solid grasp of SQL will always be hired over a developer lacking that skill.

I'm just giving him a list of things he should be looking at and if you ask me SQL is a must.