Programming Bootcamps

nate_sl

shitlord
204
1
Update: I finished the CodeAcademy JavaScript tutorial. Took me 3 days at roughly 5-6 hours a day. Going to take the rest of the day off and then do the entire course again tomorrow, without looking at any hints, to reinforce what I've learned.

After that I'll probably do the HTML/CSS course because it pairs well with JavaScript. Thoughts, opinions?
 

Hachima

Molten Core Raider
884
638
Update: I finished the CodeAcademy JavaScript tutorial. Took me 3 days at roughly 5-6 hours a day. Going to take the rest of the day off and then do the entire course again tomorrow, without looking at any hints, to reinforce what I've learned.

After that I'll probably do the HTML/CSS course because it pairs well with JavaScript. Thoughts, opinions?
Getting a core foundation of HTML/CSS next would be good.

Next I'd actually build something. I'd recommend a rails tutorial that guides you to an end project.

I don't know what rails tutorials you have looked into butLearn Web Development with the Ruby on Rails Tutorialis what I'd recommend. It will have you deploying to a free live hosted website on Heroku, using git and guide you on the way. Git can be extremely complicated, but they intro you to the basics in a nice friendly way. Regardless of what tutorial you follow, don't copy paste the code snippets. Manually type them out. It will help the learning processes much more.

Next I'd look into a few Javascript/CSS libraries and work on your own project as you follow tutorials.

Twitter Bootstrap is almost a must. It will let you leverage a lot of nice CSS without having to become a master at it.
I'd also recommend looking into AngularJS and jQuery. Those will let you start to put together something modern and professional looking pretty quickly.

Read cracking the Coding Interview. A lot may be new material. It will give you an idea of what you are looking towards being able to answer at a typical interview.
Next I'd recommend looking into Java or C#. Regardless of which one you choose, after you have been working with it a while pick up Head First Design patterns.
Pick up a SQL relational Database and get comfortable with it. Learn about normalization and what it takes to design a good database.

Next take some lessons from 'Uncle Bob' and read The Clean Coder. The book will be meaningless until you have a few hundred hours under your belt. Get some experience before reading it. But one tidbit that you can apply now is "I don't listen to music while programming" and "Programmers shouldn't listen to music while programming". There is actual science behind it. It takes over the part of your brain that is responsible for creating and has been shown to hinder your problem solving skills. Maybe if you are slugging out boring trivial code it won't matter, but when you have actual difficult problems to solve it can hurt.

Anyway, another good classic is Code Complete. Again, without some real experience a lot of it won't click.


If you end up getting into C#, after you have a good 200+ hours experience and want to get into advance stuff, check out 'CLR via C#'

TLDR version

HTML/CSS
Ruby with ruby.railstutorial.org
Twitter BootStrap,jQuery and then AngularJS or Knockout
Read Cracking the Coding Interview, identify what you need to improve/work towards
Pick up Java or C#. Start with some console apps for both, get a feel for the IDEs etc.
Pick one and try Web Development with it.
Pick up a SQL database to go with the website. IE Java+MySql or C#/MVC/MS SQL
Read HeadFirst Design Patterns as you are working on a personal project.
Practice more.
Read some Best Practice books like The Clean Coder/Code Complete
Read an advanced language book (CLR via C#)
Read Cracking the Coding Interview again.
Put together a public portfolio of projects for a resume.
Go apply to some jobs
smile.png


At minimum I'd say 500 hours of work/learning and 15hr a week with minimal gaps between working on the path. Pick up some other highly rates books out there that interest you, some non technical.
Extreme Programming Explained is a good book to learn about some of the popular trends and is more about process and not the technical aspects.

That's a rough syllabus I put together just now and I'm sure it could be improved a bit but that should keep you busy for a good 9 months
smile.png


According to Khane I'm part of "the .01%, some of the brightest, most gifted individuals on the planet" so time to go qualify for the Google Code Jam that started today and humble myself a bit now haha.
 

Khane

Got something right about marriage
19,836
13,354
Hachima is right about CLR via C#. One of the best books you could possibly read if you get into C#. And Hachima, if you were in a program at a university like MIT then yes, you are the .01%. How many developers do you think there are worldwide? How many of them were in a program like that?
 

nate_sl

shitlord
204
1
Thanks for that outline Hachima. That's going to keep me busy for awhile, heh.

I signed up for Code School for $29/month because I like their tutorials. They're longer and more challenging than Code Academy. That should keep me busy working on HTML/CSS/JS/jQuery for the next couple weeks.

After I finish the tutorials I think I'll try to build a web page to tie everything together.
 

Needless

Toe Sucker
9,172
3,268
"Cracking the Coding Interview" this was also recommended to me by a friend who now works at google. I still need to do this myself, thanks for the reminder lol
 

Tenks

Bronze Knight of the Realm
14,163
606
Should also note tech giants like Google, Microsoft, Amazon, Twitter etc have gotten away from some of the more retarded techniques like asking insane riddles and the like. I believe they've also gotten away from whiteboard demos in the interview process since they found it only determined: seen this problem before; don't get nervous being put on the spot.
 

Noodleface

A Mod Real Quick
37,961
14,508
I had one semester of assembly language under my belt from sophomore year. During my interview at EMC the guy saw this on my resume (at the end of languages, I am no fool) and made me walk through this segment of assembly code for his entire 30 minute interview and explain at each step what was going on and what the variables looked like, and it was several pages long worth of code. Never had to use assembly here and it is never brought up. I got the job, but it was kind of shitty because for that dude that was my entire interview.
 

Tenks

Bronze Knight of the Realm
14,163
606
Yeah, a lot of my students interview/go to work for the giants. Last year or so the interviews have changed pretty radically away from the old staples based on feedback I get from them. Google and Yahoo published a lot of articles about them performing analysis of their recruitment/interview process, and basically found there was no statistical correlation between all the staples and future performance.

Which was kind of depressing, since the takeaway was basically: If they're fresh out of college, it's a total crapshoot. Otherwise, extensive project history was the only thing correlating to strong performance(which is mostly true across the board, past performance is a good indicator of future performance).
I brought an actual programming portfolio to my job interview because I knew that they're taking a huge risk hiring someone out of college. I graduated with enough people who couldn't program out of a brown paper bag so I took it upon myself to do some side projects and projects for my internship and screen-cap it and print out the source. Not sure if it did anything for me but I got the job I wanted.
 

Palum

what Suineg set it to
23,490
33,813
Here's my take: starting anywhere is only the doorway into a very expansive realm. Programming at some level is now involved in almost every industry and realm - from simple marketing/graphics design to embedded device design to supercomputers to websites.

That said, learninglanguagesis about the least important facet of programming. Understanding concepts, logic, programming paradigms and working on projects collectively are all far, far more useful. It takes me about a week of pretty light reading to become competent in any language. Of course, there's still an element of learning to IDEs, memorizing libraries and the always difficult challenge of working with others. But I started with a smattering C, COBOL and BASIC 20 years ago at age 9/10. In the past year or so I've had to learn R, LISP and even work on a project involving AJAX (so basically relearning JavaScript syntax and all the new JQuery libraries/modules). No big deal, but if you go to your average symbol manipulator and not a true programmer, recursion in LISP will explode their head.

When I was in college, I can tell you that those people who learned tohowto do and notwhyto do (IE, 'what's a destructor??? lulz') were completely fucked every semester when they were hit with a new language and if they ever graduated I'm sure they don't have a job doing programming.

So by all means, start in a practical way - I mean, as a kid I started making type your own adventure games in BASIC and started playing around in other languages to do the same thing. You need to see fruits to your labor. That said, continue 'regressing' your learning to lower level languages until you understand things down to the assembly and processor instruction level. If you have a FIRM grasp of logic, there isnothingin programming that is difficult inherently. It is just extremely, extremely complicated to build some constructs to get complex results. Unfortunately as well, the increase in memory and computing power in general has caused a lot of modern languages to be very loose and lax. Clock cycles and especially physical memory which used to be managed very tightly are now frequently glanced over. Explicit memory management is a huge insight into how and why.

An amateur knows only programming at the visual level - they readhowto call a function or method in a code library and that's it. Until you canwriteall the libraries you are using, you do not understand them well enough. Then when you can do that, you should be able to complete the same tasks in a lower level language. Then you should be able to write the language itself. Don't get me wrong - there's no need to reinvent the wheel for every project, however youwillfind times where the wheel you want simply does not exist.
 

Himeo

Vyemm Raider
3,263
2,802
Jumping in to this with zero background in coding beyond vbulletin tags. Going to begin with Khane's suggestion of Head First Java.

The problem is my only computer is a chromebook. Anyone recommend a Java IDE for chromebook?
 

chaos

Buzzfeed Editor
17,324
4,839
I actually have the chromebook in that article and put Ubuntu on it a while back. Once you get Ubuntu on there you have your choice of IDEs. I used jGrasp even though it is terrible, it is what my school required you to use in the first semester of my programming classes so I got used to it.
 

Obtenor_sl

shitlord
483
0
Why Java as a first language? It's sort of 'difficult' self-taught.

I've been programming Java for years, recently (a year ago) I picked up a Ruby book; boy, what a difference in language Ruby is, so simple to understand, something as simple as '1..3 do' as a loop construct, mixins and just ease of development overall, I'm in love with Ruby.
 

Cad

<Bronze Donator>
24,487
45,378
Why Java as a first language? It's sort of 'difficult' self-taught.

I've been programming Java for years, recently (a year ago) I picked up a Ruby book; boy, what a difference in language Ruby is, so simple to understand, something as simple as '1..3 do' as a loop construct, mixins and just ease of development overall, I'm in love with Ruby.
Thing I didn't like about Ruby (although this might be Rails more than Ruby) was that there was always too much going on behind the scenes of some syntactically simple construct, that if you didn't already know what it does, you would NEVER fucking figure it out, and the libraries generally weren't browsable. So whereas in Eclipse I could follow a function call, see exactly what it does in 20 seconds, come back and have a good grasp on what something is doing, in Ruby I'd be hitting goddamn google and trying to read up on why something works, how to change it a little, etc and maddeningly simple things would take forever. Java the syntax is more complicated but there's a lot less "syntax magic" and cute shortcuts that actually make things far LESS readable and maintainable in my opinion.