How to Become a Programmer in 9 Weeks: Week 9

Screen Shot 2014-08-28 at 9.33.55 PM

<< Week 8

Recap: Follow Me from HTML Illiterate to Professional Programmer

In case you haven’t read Week 0 (about my preparation), I am currently a student at a programming bootcamp in the San Francisco Bay Area. I finished college a few months ago, but decided my business degree wasn’t going to let me do what I really wanted: to build rather than manage. This realization and my love for startups (and California) led me to begin working toward a career in software development.  

 

A Reflection on the Value of a Programming Bootcamp:

It is hard to believe over 2 months have flown by since I made the decision to transition my career from marketing to web development!  Starting out, I was extremely suspicious of the claim that I could spend 9 weeks at a bootcamp and come out as a marketable programmer.

So now, 9 weeks later, am I an amazing programmer capable of coding like a 5 year veteran?  Of course not – but I was never expecting to be.  I was expecting to leave Coding House with an understanding of the very basics of programming and and idea of the tools and direction I needed to continue to learn on my own.  I can confidently say that this expectation has been met.

Every time I tell a programmer that I am learning to code without a computer science background and have started this process by attending a bootcamp, I immediately get a link to and article called Teach Yourself Programming in Ten Years by Peter Norvig.  Just to be clear, I agree with Dr. Norvig 100% – in fact, I don’t think one can even be a master programmer in ten years.  The technology just changes so quickly, that there is always much, much more left to learn.

In my eyes, this is the most important point to keep in mind.  Being a good programmer requires constant learning just to keep up with current industry standards.  In this situation, it seems like a hiring manager would put the most value not in the programmer who has the most years of experience, but in the programmer who has a history of learning and adapting the fastest.  The one thing every single programmer I know has said is that anyone can only become a better programmer by simply programming.  It goes back to the classic saying that practice makes perfect.  Being at a coding bootcamp has taught me how to practice – now I can plan on getting out there and really getting my hands dirty.

 

The last week of my time in my bootcamp has been devoted mainly to finishing up projects, getting ready for the job search, and tying up loose ends.  As such, I’d like to take this opportunity to reflect on the highs and lows of the entire 9 weeks rather than just this past week.

 

3 Highs:  

Access to Resources:  Having access to all sorts of different learning resources and online tutorials has been fantastic!  Everyone has their own way of learning, and having the option to choose the best method from such a large selection has been of great value.

Freedom from Daily Life:  This is the most valuable thing being at a bootcamp has offered.  It is very difficult to carve out time from a busy schedule with a full time job to learn something as colossal as programming on the side.  Stepping away from the time consuming details of a busy life gave me the opportunity to step back and just learn.

Independence:  An autodidact to the core, I learn best when I am able to dictate my own learning path and schedule.  I had the flexibility to do that throughout this beginning of my learning process, which has been imperative to its success.  This has also allowed me to lay out plans for my continued learning after this week, and I am incredibly excited to get started!

3 Lows:  

The Frustration: Learning anything new can be difficult, but programming introduces a whole new way of thinking about logic – a new problem solving language, if you will.  Like I’ve said, I came into this bootcamp HTML illiterate.  I knew nothing about even the simplest markup language.  As such, diving headfirst into the programming material and trying to come out on top was ridiculously difficult and frustrating.  I began referring back to the edX course, CS50X from Harvard to help me out with many of the basic concepts – that was one of the best decision I ever made.  David Malan is a fantastic teacher with a very unique way of relating a topic to a student in a way that makes it easy to understand.

Fear of the Unknown: Before becoming a programmer, I had experience with writing business emails, drafting business resumes and cover letters, and writing business reports.  What I didn’t know how to do was accomplish all these tasks from the point of view of a technologist.  A developer’s resume requires different material formatted in a different way than a marketing consultant’s and programmers use unique jargon that I didn’t have any idea about at all.  It is human nature to fear the unknown, and I spent a good chunk of the first few weeks doing just that!

Falling into Step with the Structure:  Coding House has a very different way of teaching than all the other workshops, classes, and schools I’ve been a part of.  The schedule is extremely fluid and adaptive, and the curriculum follows in suit.  This is not a bad way of doing things, by any means, but it was not something I was used to, even when I taught myself as an autodidact.  I always set an objective for myself, researched and devised the steps I needed to complete to get there, and then followed my plan.  Falling into step with the way things were done at this bootcamp took some time, but I think it helped me become more flexible with my learning conditions as well. 

Takeaway Advice

  • Carve your own path.  What works for others may not work for you based on your skill level.  If you have to take a detour, like I did with CS50, you will only come out stronger for knowing to take it.
  • Practice really does make perfect.  10,000 is the accepted number of hours it takes to become pretty good at something, and programming is no different.  Just build something!
  • Be flexible.  You will usually not have your ideal environmental condition for learning.  The efficient answer to this shouldn’t be to change your environment – it should be told change your requirements.

Thank you for following my initial journey into programming!  I hope you learned something from my experiences and if there is any way I can be of help to you as you begin your own journey, please don’t hesitate to contact me at http://swati-kumar.com.  I’d love to help out a fellow Junior Developer!

<< Week 8

How to Become a Programmer in 9 Weeks: Week 8

Screen Shot 2014-08-28 at 9.33.55 PM

<< Week 7

Week 9 >>

Recap: Follow Me from HTML Illiterate to Professional Programmer

In case you haven’t read Week 0 (about my preparation), I am currently a student at a programming bootcamp in the San Francisco Bay Area. I finished college a few months ago, but decided my business degree wasn’t going to let me do what I really wanted: to build rather than manage. This realization and my love for startups (and California) led me to begin working toward a career in software development.

 

3 Highs:  

The Wonders of Firebase:  Before I build (or rebuild without the bugs!) the backend of myCard, I have been reworking the front-end and using Firebase to post and get my data.  Google recently acquired Firebase, and for very good reason – the product is amazing!  I understood how to use it easily and setting it up hasn’t been too difficult either.  Usually, the back-end has so many details and busy-work involved that its never my favorite thing to set up, but Firebase makes the storing-data-thing easy enough to leave me no excuse to stall on working on the app.

The Beauty of Yeoman:  Now, it isn’t that I’m completely obsessed with shortcuts.  Its just that starting a new project requires so much attention to detail in order to prepare for neat and organized code that it can be very tedious.  Yeoman works beautifully with what I’ve already written in Angular and essentially generates a template of files for me to work in.  It is pre-organized and ready for code – which is perfect for junior programmers who really just need to practice their programming!

Independence:  The past week or so have been pretty chilled out for us in terms of structure.  We have been working on this huge team project, of course, but outside of that, there has been full freedom to learn on our own.  As I’ve mentioned in previous posts, I’m an incredibly independent learner and feel strongly that self-reliant learning is the most sustainable kind.  As a result, I have been more productive than usual this week and looking back at my checklist of completed tasks gives me warm fuzzies…which are, of course, attacked by ice pellets when I look at the rest of the list…

 

3 Lows:  

Buggy Back-ends:  Back to myCard – buggy code sucks.  It quits working randomly without any apparent reason and takes way too long to get going again.  As a result, I’ve had to make the difficult decision of scrapping my entire back-end code as it is and will be using Firebase instead to optimize the front end before messing with Node (or maybe Rails) again.  It was definitely a difficult decision considering the work that went into it all, but I also think its the right decision for the project!

Cold Emails:  Well, emails are a bit better than cold calling, but only marginally.  I do understand these emails are important to my job search, but sending busy start-up heads yet another email they have to sort through from someone they’ve never spoken to just hits a level of awkwardness that I’m not a fan of.  Lets just say there have been several cold emails this week sent from my address and I haven’t loved sending any of them…except for when I get an enthusiastic response.  I only email companies I really love, and getting a response that is just as excited about my excitement is great!

Issues with Terminal:  This has been a low throughout the bootcamp, but I’ve had more issues than normal with terminal this past week, which has made working on our group project difficult for me since I spend all my time working on figuring out why I’m getting a hundred lines of error messages.  Luckily, I have Samer to help me debug – but I definitely need to find a solid tutorial on best practices when using the terminal.

The Immersion:  

Hacking Spaces:  After the bootcamp ends, I need a place to continue to work on my projects and network.  I’ve been looking for a place where I can talk to other developers, but also have time to myself to work silently.  There are actually hacking spaces nearby like Hacker Dojo, but I have to keep the monthly fees in mind and the fact that I don’t have a car yet.  Any work space deserves some thought and consideration, so I’ve been spending some time each day finding the ideal place to set up shoppe!

Call for Nonprofits:  I’ve been heavily involved with nonprofits and my community my whole life, and have been able to bring this into my career as a developer as well.  Several nonprofits in my hometown have asked me to build them a simple, single page website that can get across the message of who they are and what they do without overwhelming the visitor with text.  This is great practice for me since I can practice with basic front-end development and build my portfolio and it doesn’t generally take more than a day’s work.  So I’ve decided to continue with this at least once a month on a Sunday, when I will dedicate the day to building something for a nonprofit organization.  Send me a message if you’re interested for your nonprofit!

 

Takeaway Advice

  • Try new things – you’ll find invaluable shortcuts that will make your life infinitely easier!
  • Make writing clean code a goal from the very beginning, otherwise you will end up with buggy code that needs to be re-written from scratch anyway.
  • Take on personal projects and do them for free!  You will have a great way to give back to the community, build your portfolio, and get some great practice along the way!

<< Week 7

Week 9 >>

How to Become a Programmer in 9 Weeks: Week 7

Screen Shot 2014-08-28 at 9.33.55 PM

<< Week 6

Week 8 >>

Recap: Follow Me from HTML Illiterate to Professional Programmer

In case you haven’t read Week 0 (about my preparation), I am currently a student at a programming bootcamp in the San Francisco Bay Area. I finished college a few months ago, but decided my business degree wasn’t going to let me do what I really wanted: to build rather than manage. This realization and my love for startups (and California) led me to begin working toward a career in software development.

 

3 Highs:  

Confidence:  I am a junior developer, which means that I have learned about 1% thus far of what there is to know about computer programming.  Still, there are several things that I can now contribute to a project!  Going from never having so much as written a simple HTML form to building apps (albeit simple ones) in the MEAN Stack within 8 week has been a bumpy, but satisfying ride.  Development in general is a field that requires constant learning to stay up to date.  This is one of the things I love about it and exactly what keeps me motivated to keep learning!  After all, not being able to do something is a lot better than not having the confidence to learn how to do it.

Refactoring:  We have been working on project as a group for a large telecommunications company that is due on Thursday to the client.  As one may assume, this requires a LOT of double-checking, error-hunting, and bug-fixing.  Programmers call this process ‘refactoring’ and it has been blessing for me in that it gives me the opportunity to review what we have done and make sure I understand it.  I’ve probably learned more while refactoring than I have in an actual lecture!

Getting Back into the World:  My isolation during my learning time has been very much self-imposed.  I did it because I needed to focus, and it isn’t a decision that I regret at all.  However, now that the core learning process (at this particular bootcamp, at least) is ending, its pretty nice to start breaking free of Stockholm Syndrome and getting back in touch with my friends and the outside world!  I’ve been talking to new people during the job search and am getting ready to go see more of the Bay Area!

 

3 Lows:  

Cover Letters:  Anybody who knows me knows that I love writing.  Blog articles, fiction, nonfiction – I write everything, and I really enjoy it.  Unfortunately this does not carry over to writing cover letters.  Traditional cover letters seem plastic and void of personality, but writing one with ‘too much personality’ looks unprofessional.  Getting the right tone down for the right company is basically a guessing game, and figuring out which companies want ‘buzzwords’ and which don’t is practically impossible.  So basically, the chances of winning at writing any given cover letter is very slim.  Being in the middle of a job search, however, I get to write several cover letters a day.  Yay…on the bright side, at least I get to write something every day!

Giving up the Marketing:  I moved into development after spending some time as a Digital Marketing Consultant, so pretty much all my work history and internships thus far (yes, I am fresh out of college so there isn’t a ton of it) is in business and marketing.  Getting rid of these things from my resume has been painful – almost like I’m erasing four years of hard work.  Luckily, I can retain a few things since several Digital Marketing skills are actually relevant to development – but the sheer amount work that must be deleted is awful!

Project Crunch Time: For those of your who have been reading this series for the past several weeks, you know that I have been working on several personal projects – including myCard.  You also know that I love working on my own on these projects and value this time as some of the best learning opportunities I’ve had.  However, being rushed to finish is never fun!  Fact is, I need to really begin building a portfolio and there isn’t much time left to get it done if I want a somewhat nice one before leaving the bootcamp, but rushing to get it done is still a frustrating process!  Check on me in two weeks to see if the final product was worth the hard work – hint: it probably will be!

 

The Immersion:  

Craigslist:  I come from the Midwest where Craigslist is not generally what one trusts to find an apartment or job.  Apparently, its perfectly trustworthy here in the Bay Area, though!  Several people have suggested I get on with my job search on Craigslist…which has been pretty awesome.  Learning something new every day!

Caffeine Overload:  I am overloaded on caffeine.  This is something I plan to completely get rid of after the end of my 9 Weeks here, so the process of detaching myself has begun.  Surprisingly enough, I’m not crankier or more tired than usual as a result – in fact, its amazing how much better I feel.  True, I get tired earlier, but I guess going to bed by midnight instead of 3 AM is more a good thing than a bad one.

 

Takeaway Advice

  • Be confident in whatever you do!  Not being able to do something is not nearly as bad as not having the confidence to learn how to do it.
  • Cover letters have always sucked and will continue to do so regardless of the industry in which you are applying for jobs.  Get used to it.
  • If you live in the Bay Area, Craiglist is awesome!  Make it your best friend!

<< Week 6

Week 8 >>

How to Become a Programmer in 9 Weeks: Week 6

Screen Shot 2014-08-28 at 9.33.55 PM

<< Week 5

Week 7 >>

Recap: Follow Me from HTML Illiterate to Professional Programmer

In case you haven’t read Week 0 (about my preparation), I am currently a student at a programming bootcamp in the San Francisco Bay Area. I finished college a few months ago, but decided my business degree wasn’t going to let me do what I really wanted: to build rather than manage. This realization and my love for startups (and California) led me to begin working toward a career in software development.

 

3 Highs:  

Social Media:  I’ve never been hugely involved with social media, but my later years in college and now my time at this bootcamp convinced me very quickly of the importance of Twitter and LinkedIn to my career.  I really only got a Twitter account at the beginning of the summer and didn’t particularly do anything with LinkedIn until then either.  After realizing that ignoring my social media accounts was probably a mistake, I began to make a few updates here and there and started interacting with people a bit.  Still, my cyber-life was pretty lame until this past week.  I had a whole bunch of awesome conversations with successful people in the industry and even got to schedule a couple of pair programming sessions!  I’ll be honest – I am not a fan of networking with random people who have no desire or need to speak to me; but that was pretty awesome!

myCard:  I’ve tentatively started calling my business card project (See Week 4) myCard and its been moving very slowly.  Fortunately, I’m also learning a lot and getting better with the backend as a result.  Repetition is the best way to remember something, and that’s exactly what I’m getting from working on myCard and my other personal projects.

Interview Assessments:   Week 6 came with a few emails and LinkedIn messages from potential employers.  Problem was, I’m still vastly under qualified for most of these since they wanted at least 2-3 years of experience in development.  I don’t have 2-3  years of experience in any profession, let alone development.  Still, I somehow managed to land a couple of Interview Assessments that needed to be completed before an in-person interview.  A lot of what I saw was way over my head.  The great part, though, was that I was actually able to do some of it.  Being able to look as something I had done that would have looked like gibberish to me a mere few weeks ago was a fantastic feeling!

 

3 Lows:  

Ruby on Rails:  Okay, so Ruby on Rails is not a low, per se.  I’ve actually been really excited to learn it because so many companies use it (and look for it in potential employees!), but the learning curve has definitely gotten steeper and steeper as the amount of material has increased.  Imagine learning Algebra, Geometry, and Trig all at once in high school – yup, it can get pretty crazy no matter how cool the material itself is. 

The Home-Stretch Rush:  When I started the bootcamp, multiple people told me that the first half would rush by and I would feel like I have all the time in the world to learn the material and do my job hunting.  Then, the second half would come and it would hit me like a sack of potatoes that I’m running out of time – fast!  I have to say, these were some pretty intelligent people because what they said is very true.  Bootcamps are hard work, but they also fly past in a flash.  Before I knew it, I was already in the home stretch.  Time to find a job (‘nudge nudge‘ if you know someone hiring)!

Perpetual Fatigue:  Realizing I’m running out of time has put me into overdrive which means I get even less sleep and have to work harder because its difficult to focus when I’m tired.  As a result, I’m pretty much always ready for bed.  Luckily, I’m planning to make up for lost REM time for about three days straight after I finish!

 

The Immersion:  

Hijacking the Kitchen:  Ethnically Indian, I have grown up around Indian food my whole life – so suddenly not having access to it can be saddening.  Luckily, the bay area is overflowing with Indian stores so I’ve been able to get some groceries and have pretty much hijacked the kitchen with my Indian stuff.  Our Food Director, Sarah, is an amazing cook herself who’s always trying something new in the kitchen herself.  I try not to get in her way, but nobody stands in the way of me and my samosas!

Dusting off that Resume:  I’d forgotten how time consuming it could be to write a resume.  As a business major in college, I spent a lot of time learning to write a solid business resume.  It is a lot harder to organize a techie’s resume, though, because of all the little skills (different languages, frameworks, technologies) that need to be communicated without crowding the single piece of paper.  Basically, I have to relearn how to write my resume and it is taking a looong time.  I also happen to be one of those people who love building a resume, though, so its really not so bad!

 

Takeaway Advice

  • Even if you’re an introvert, don’t shy away from social media!  It is integral to making connections, especially if you have issues walking up to people and talking to them in person.
  • Starting your own project can be daunting, but all the mistakes you make will be your own and you will learn from them.  It is definitely worth the effort.
  • Not all resumes are made equal!  Make sure you learn about how to optimize your personal experiences on your personal resume.

<< Week 5

Week 7 >>

How to Become a Programmer in 9 Weeks: Week 5

Screen Shot 2014-08-28 at 9.33.55 PM

<< Week 4

Week 6 >>

Recap: Follow Me from HTML Illiterate to Professional Programmer

In case you haven’t read Week 0 (about my preparation), I am currently a student at a programming bootcamp in the San Francisco Bay Area. I finished college a few months ago, but decided my business degree wasn’t going to let me do what I really wanted: to build rather than manage. This realization and my love for startups (and California) led me to begin working toward a career in software development.

 

3 Highs:  

Angular.js:  I’ve been very interested in everything I’ve learned about the MEAN stack thus far, but with my focused interest in front-end development and how cool Angular is, it is definitely my favorite thus far.  There are just so many things that can be done with it and it makes my code dynamic without forcing me to really even think about it.

Autodidactism:  People in general learn in very different ways at very different speeds which can be frustrating at times – in fact, it was one of my lows last week.  This week, though, we switched gears a bit and had more freedom to break away from the group and learn on my own.  As anyone who reads my blog knows, I am very much an independent learner, so this was freeing for me.  I was able to slow down where I was confused and could speed through what I already knew, which resulted in a faster learning process.  I wish I had more time for this while learning Node, but am very glad to have had the opportunity with Angular; I have been learning it a lot faster and am able to use it pretty well in my projects as well.  Tip:  I also plan on putting all this stuff on my Accredible profile.  Employers definitely want to see what you have done, but if you’re new, it would also be nice to show them how you did it!

Individualized Projects:   Speaking of projects, working on my own idea and figuring out how to solve issues with the code without an instructor’s help can be frustrating, but for me it has been an amazing learning experience.  I am still working on the business card project I mentioned in last week’s update and have been incorporating Angular into it as I’ve been learning it.  As a result, the app is cooler and I’m much better at using the technology!  I figure having at least one major side project at all times will be my key to continuously learning the newest ‘hacks’ as a developer.

 

3 Lows:  

Cruise Control:  Learning and using a brand new skill has always been thrilling to me in some ways.  The process has its highs and lows, and I always end up on top when I have some new knowledge to show for it.  Unfortunately, sometimes I just fall into cruise control when I am really just practicing and the thrill disappears for a while.  This is an important part of mastering any skill, of course, but it is also a boring part.  Those side projects I’m working on still pack a pretty thrilling punch, though, so I’ve just been using that to balance things out a bit.

Editing Bootstrap:  Bootstrap provides customizable templates that make HTML and CSS much easier to use and as I have always said, it is one of my favorite development tools.  However, for someone new to programming, Bootstrap is awfully difficult to edit.  If it is in a minified file, it is pretty much impossible to find the right classes to append to the CSS file and even if it isn’t, BootStrap CSS is so big that finding the class one has been searching for is undeniably difficult.  As much as I love Bootstrap, it definitely has its own pain-in-the-neck moments.

No Time to Write:  Before I could write code, think about marketing strategy, or even use a computer properly, I was writing.  Writing everything – from nonfiction to fiction to blogs – has been not only a hobby, but also my way of learning something new.  Any time I want to learn a new concept, I write it down as a tutorial and end up teaching myself in the process.  Not having any time to do this has therefore been a bit disappointing and something I would like to get back to as soon as possible.  Needless to see, you guys will probably see a sudden flow of new blog posts after I’m done with these 9 weeks!

The Immersion:  

Living in the Bay Area:  is probably only a wise idea for a multi-millionaire.  Okay, that’s an exaggeration – but seriously, the hardest part of moving here to become a developer is trying to find a place to live after this bootcamp is over.  Apartments fly off listings literally hours after they are posted, everything of even decent quality is mind-bogglingly expensive, and I don’t have a car since I just moved here.   Solution?  I have no idea yet.

Weird Hours:  When I was in school, my average sleep schedule was 2-3 am to 7 am.  Then I jumped back to a more normal 12am to 8am when I was working as a Digital Marketing Consultant (and wasn’t studying day in and day out).  Then I decided to learn to code…and my average bedtime this week was 3:30 am.  Luckily, I know this will probably regulate when I have a job and a more regular work schedule, but the irregular sleep made me crave naps all week.  I actually made a mini-app that translates the word ‘nap’ into a whole bunch of different languages!

 

Takeaway Advice

  • Programming is not easy, but you will probably find some language or framework that you really love.  Keep at it until you get there!
  • Know how you learn best and don’t be afraid to create that ideal environment for yourself.  You aren’t in grade school anymore where you have to do what the rest of your class does.
  • Document your advances!  Of course, post your projects to GitHub, but also put them on your personal website, LinkedIn profile, and on Accredible (where you can also post any supplementary MOOCs that you took and project a more well rounded view of your autodidactic education!).

<< Week 4

Week 6 >>

How to Become a Programmer in 9 Weeks: Week 3

Screen Shot 2014-08-28 at 9.33.55 PM

<< Week 2

Week 4 >>

Recap: Follow Me from HTML Illiterate to Professional Programmer

In case you haven’t read Week 0 (about my preparation), I am currently a student at a programming bootcamp called Coding House in the San Francisco Bay Area. I finished college a few months ago, but decided my business degree wasn’t going to let me do what I really wanted: to build rather than manage. This realization and my love for startups (and California) led me to begin working toward a career in software development.

 

3 Highs:  Shortcuts Galore

Bootstrapping EVERYTHING: Bootstrap is an HTML and CSS based front-end framework that saves a ton of time when it comes to laying out a webpage or app.  I’ve been using Bootstrap a lot more this week, which has left more time to work on design aspects and back-end applications.  It is essentially the perfect way to cut out busywork!

Git Init!  Using Git from the terminal can seem unnecessarily involved when I just need to make one update to my GitHub account, but now that my projects are including dozens of files, Git makes file sharing a lot easier.  I won’t say I’m a complete pro at using it yet – merging is still a pain in the neck when my HTML file suddenly has a row of ‘>>>>’ in the head.  I do think, though, I’ll be pretty good by the end of the 9 weeks!

The Front-End:  It seems like everyone is beginning to veer toward the side the like best – front-end or back-end – at this point.  I definitely like learning about the back-end and plan on developing proficiency in the area, but I’ve always been partial to art and design and front-end development makes way for this life-long interest as well.  I’m definitely looking forward to learning more design and UX principles as well!

 

3 Lows:  The Mysterious Errors

Error!  Errors.  Every two seconds.  Literally.  Even my instructor got stuck for a few moments trying to figure out why I kept getting errors in my JavaScript.  This can be extremely irritating when I need to keep up in workshop, but debugging has been a good experience in that if I get the same error enough times, I can remember how to solve the problem myself in the future.  Still, it is pretty frustrating while its happening.

The Terrifying Terminal:  Said Errors generally occur while working in the terminal.  Typing blogs and sentences has become second nature to me over the years, especially with my inclination toward writing, but typing for programming is very different!  We use keys that are rarely used in every-day typing (like ‘ } ‘ and ‘ ` ‘ ), which means that they aren’t engrained in muscle memory yet and my fingers still get clumsy as I type them.  As a result, I make more mistakes which aren’t easily rectified in the terminal; I always have to retype the entire line.

Node is NOT for Newbies: This is actually something that I’ve read in articles often.  I won’t say that Node can’t be learned by baby programmers like myself, but some concepts are a bit harder to grasp and there is a ton of stuff to learn before being able to do the smallest things.  From my understanding, this is the main difference from a language like Ruby.  The big advantage of Node (and really MEAN stack in general), though, is that its all JavaScript.  There is no need to learn a completely different language for different functions, which is pretty powerful when it comes to putting together complex code and learning new things within the stack.

 

The Immersion:  When Sleep Sounds Better than Money

Naps:  I’ve never been the kind of person who can take a short 30-minute nap during the day.  I’m still not – if I fall asleep, I’m out for at least an hour usually.  Naps have become necessary to keep myself going during the day without burning out, though, so I’m definitely getting used to them for now.  I’d like to go back to sustaining myself during the day since I won’t exactly be able to nod off at work half way through a meeting, but for now, I’ll just take whatever amount of sleep I can get!

Dining with Developers:  Food, as usual, is fantastic at Coding House!  Sarah made these amazing street tacos with a mango salsa for lunch one day…they were absolutely delicious.  I’ve made up my mind to fill up a notebook of her recipes as thick as my coding notes before I leave here!

Post-Bootcamp:  I have always been very clear about the fact that being at this bootcamp is a way to put myself in a programming mindset that will allow me to propel myself forward in the learning process during the months following the bootcamp.  I’ve really been working toward preparing for this during the past week by noting down all the things I didn’t fully grasp but don’t have time to go back to since we are moving so quickly.  I’ve also been making a list of related technologies and methodologies that I’m seeing online or the instructors are mentioning so that I can go back to them.  My goal is to spend a year or so after the bootcamp not only working as a programmer to practice and develop my new skills, but also continue to learn on my own rigorously through online tutorials and computer science MOOCs.  Of course, learning will be a life-long process in this career, but the next year will be essential for conquering the learning curve!

 

Takeaway Advice

  • Just because something seems annoying or useless, doesn’t mean its time to give up on it.  Practice with it for a bit.  Chances are, the technology is popular for a reason and you’ll end up loving it too.
  • Don’t let yourself be overcome by errors and mistakes.  Accuracy will come with time and practice!
  • Be realistic about your learning expectations.  Learning to be a proficient programmer in 9 weeks is frankly not realistic.  However, it is within your reach to learn how to learn programming, which is immensely valuable in its own right.

<< Week 2

Week 4 >>

How to Become a Programmer in 9 Weeks: Week 1

Screen Shot 2014-08-28 at 9.33.55 PM

<< Week 0

Week 2 >>

Recap: Follow Me from HTML Illiterate to Professional Programmer

 

In case you haven’t read Week 0 (about my preparation), I am currently a student at a programming bootcamp called Coding House in the San Francisco Bay Area. I finished college a few months ago, but decided my business degree wasn’t going to let me do what I really wanted: to build rather than manage. This realization and my love for startups (and California) led me to begin working toward a career in software development.

 

3 Highs:  Success!

 

A Whole New World: Learning to code with absolutely no computer science experience (like learning to do anything without field experience) is mind boggling. We generally learn best by relating to the concept we want to learn to something we already know – its called mind mapping. There are terms and concepts that I not only haven’t heard of , but can’t really connect with other pieces of knowledge either. This makes the learning process a bit harder for complete beginners (like me), but the feeling of accomplishment after understanding something new is all the better too.  completed-javascript-road-trip-part-1-b9f5af5196fb596271f7f97b6b477d24

 

Balance, Young Grasshopper: Although I’m certainly no expert, having learned a good chunk of HTML5 and CSS3 in the couple weeks before making the trip to San Francisco has been extremely advantageous. Obviously, I wish I’d had time to learn more about JavaScript (considering this is a MEAN stack boot camp), but having what little background I managed to build is great for building confidence. Every time I have trouble with a concept, there’s always something else I can contribute from what I do know – which is a good ‘frustration buffer’.

 

Coding Builds Character: Debugging has probably consumed most of my time as an upcoming developer, which is frustrating because I never know if my code isn’t working because of a conceptual mistake or just a missing semicolon. The high, though, is that this is such a typical part of the job that my patience before becoming frustrated and angry has increased significantly after only being here for a few days.

3 Lows:  That Time I Fell Asleep on My Keyboard

 

Falling Behind: The worst thing is feeling as though you are the most behind in a group and are slowing everyone else down. Although I am certainly not as far in the learning process as I would have liked to be by now, apparently everyone gets this feeling and it works as a driving force. My solution thus far has been to prepare for lectures ahead of time. I generally try to find out which topics will be covered in the next few days and find video tutorials (Code School is my favorite for JavaScript!) and articles (JavaScript is Sexy; perfectly appropriate for work, I promise). I use these to pick up whatever basics I can so that I have at least been exposed to the terms and concepts I hear during class.neuropsychology

 

Slower Learning Process: This just comes with the ‘Whole New World’ territory – trying to learn something without any exposure to the topic can be a much slower process. I generally pride myself on being a fairly quick learner, but learning the logic behind programming can be tough (don’t believe me? Look up some loops within loops within loops – super nested loops. Loop Inception, seriously.) and can make things frustrating very quickly. My solution thus far has honestly been to suck it up. There are some things that just take time to pick up, but are necessities.

 

Sleeping is Silly: At least, that’s the philosophy around here. Most nights, I’m up until 2:30 in the morning and have to be up by 7:30 for the daily workout. 5 hours doesn’t seem too bad (as a result of a bad habit – really, 8 hours is ideal), but staring at a computer screen all day after what usually is a killer workout in the morning can be really taxing. They’re not kidding when they say you code 90+ hours per week at Coding House! Note: This is only okay because its for a few weeks. Obviously, lack of sleep will result in low productivity in the long term.

 

The Immersion:  The Food.  That is All.

 

Amazing Weather: Coding House is closer to the San Jose area, where people can’t really appreciate the perpetually beautiful weather like I can as an Ohioan (who went through a ridiculous Winter this past year). Plus, its always nice and cool in the evening to ward off a hot day’s fatigue.

 

Fantastic Food: Sarah, our Food Service Director, is probably going to be Betty Crocker in a few years. Needless to say, she’s an amazing cook! From Chinese to Indian to Thanksgiving dinner staples, she makes amazing everything. I was a fan of the Maple Pepper Chicken this week, but check out her blog – her recipes are definitely worth trying out at home!

 

Discipline: We wake up by 7:30 (at the latest) every morning, have what is usually a very intense workout, start working by 9-ish, have lecture until noon with a 30 minute break for lunch and then get back to it until around 6pm when we have dinner. Then, we work on projects on our own until we start dropping like flies. Generally, people are done with the day between Midnight and 2:30. Then we do it all over again. Workouts and team bonding activities are mandatory and we have healthy meals at our set times. Being in the schedule can be grinding at times (especially when you claim an allergy to exercise like me), but it is obviously good to fall into a disciplined daily schedule. Don’t get me wrong – everyone has tons of fun here! There are plans to go to the Redwoods next week to play Airsoft and camp out over night. I am 100% a city girl who doesn’t mesh well with the wild, but it will definitely be an interesting experience even for me!

 

Insights

 

The fact that Coding House is a full immersion bootcamp where we all eat, sleep, code, and repeat together is definitely its competitive advantage. Its one thing to spend 8 hours a day coding in class and completely different to literally spend all day learning. The bootcamp itself is a bit shorter than the average 3-month programming bootcamp, but the sheer amount I’ve learned in a single week speaks for itself in terms of quality. I’m looking forward to diving deeper into JavaScript next week after this week’s intro – and hoping to survive my first camping trip in a forest. Check this series out next week to follow my learning curve and pick up some tips on learning to program yourself!

<< Week 0

Week 2 >>

How to Become a Programmer in 9 Weeks: Week 0

Screen Shot 2014-08-28 at 9.33.55 PM

Week 1 >>

Path to Programming

When people ask me what I want to do with my life, I tell them I want to build [game-changing] software in Silicon Valley. They think that’s pretty cool and the next question is always about where I got my computer science degree.

Erm…I didn’t.

I got a Business Administration degree and had no credentials, training, or even background reading in software development until about 4 weeks ago – which is when I Googled ‘difference between front-end and back-end development’. So yeah…’novice’ was kind of written on my forehead.

I am still definitely very much a novice, but that first Google search set into motion a series of followup searches. These led to my introduction to the concept of online tutorials and eventually, I found development bootcamps.

 

Its not About the Money

Development bootcamps are a new concept that have been gaining traction rapidly over the past few years. Starting with Dev Bootcamp in 2012, they’ve been popping up left and right. Most boast job placement rates in the upper 90%’s and some even guarantee positions for each of their students.

As a result, demand for admission has skyrocketed and the market is happily providing supply. While this is fantastic for the ‘coding bootcamp industry’, it makes choosing the right one all the more difficult for prospective students.

The promises bootcamps make about glorious 6-figure software engineering jobs had me unmoved – it is just too hard to believe that 8 to 12 weeks are sufficient to amass the kind of knowledge needed to land those jobs. I preferred to look further into bootcamps that made more realistic promises, like claiming to be able to jumpstart (not finish) the programming learning process and helping to find a junior developer position/internship that would serve more as a learning apprenticeship than a comfortable long term gig.

This particular criteria filtered out a huge number of options. Next, I wanted to learn stuff that would be useful to me for a while. Programming languages and frameworks go in and out of ‘style’ constantly – the last thing I wanted was to build skills in something only to have to start over in something new right away. My research said that JavaScript is a very popular upcoming language used on both the front end and back end – and that’s how I zoned in on Coding House.

 

How do You Prepare for a Bootcamp?

Before the bootcamps (but after the shorter online videos), I found instructional websites like Treehouse and Code School. At the time, I didn’t have the time (or sheer motivation to carve out time) to spend the hours on these websites that were needed to achieve even the lowest level of proficiency in programming. When I was accepted into Coding House, however, I buckled down began pummeling through them. I found that Treehouse was absolutely perfect for HTML and CSS with a fantastic tutorial for building a website. When I got to programming and JavaScript, however, I got a bit bored. The tutorials were long, and to someone totally unfamiliar with the syntax, they were difficult to follow as well.

I tried Code School at that point, and absolutely loved their JavaScript tutorials. Code School has shorter videos than Treehouse, and more time is spent in guided exercises than simply listening to lectures. This catered well to my minuscule attention span and let me build a solid introduction to basic (very basic) JavaScript. It should be noted, however, that Treehouse goes into a lot more detail – if I had more time to prepare before starting my bootcamp at Coding House, I would definitely have worked through all the Treehouse tutorials as well – just after finishing Code School for the basics.

The most important thing I did to prepare, though, was to actually build my own website. Its one thing to listen to someone as they do something and completely different to complete every step on your own with the result being the first website you ever develop. The website I built is simple, but it became my personal website and I can continuously make improvements as I learn new things. I also pushed this code to my Github account, where a potential employer or coworker can see the changes (improvements) I make over time.

 

Oh the Places You’ll Go!

Of course, I also spent some time panicking before flying out to San Francisco to attend Coding House. One thing I learned, though, is that there’s no room for stress and frustration in development. There will always be bugs in your code (as small as a missing semi-colon or extra backslash) that can prevent the entire thing from running. Looking for such bugs is time consuming, frustrating, and often stressful when you are in a time crunch. Flipping out will make it a bad experience instead of a learning one. I find that taking a little bit of alone time to reflect on how the day is going and how it can be better – almost like meditating – is very helpful.

The best part is, getting through the tougher initial learning process is a huge achievement – I am excited to have the skills I need to learn how to become a great programmer by the end of this bootcamp. There is a huge demand for good computer programmers (a trend which is likely to continue into the near future), so the job and salary outlooks are fantastic. Plus, being able to build an idea is a highly coveted skill. Many people even decide to build their own startups. The opportunities are endless and I’m excited to get started at Coding House and discover more along the way!