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 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 2

Screen Shot 2014-08-28 at 9.33.55 PM

<< Week 1

Week 3 >>

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:  Practice means Progress!

Learning Made Easy:  Okay, this is kind of misleading – learning to code without any background in programming is not in any way easy.  Getting used to the daily regimen and long hours, however, makes it easier to focus and learn for longer hours without zoning out.  The constant feeling of never being able to completely catch up is inherent to a boot camp, but it has been a whole lot easier to work with since I’ve physically fallen (more) in sync with the schedule.

Seeing Results:  It is also been extremely helpful to set mini goals.  Everyone learns in different ways and at different paces, which becomes very important to keep in mind in such an intensive learning environment.  Recently, I’ve been taking what the instructor is teaching as a relative syllabus rather than forcing myself to try to learn things at his pace.  It helps to note down the topics and terms that are mentioned during lectures and then spending the evenings re-learning them on my own at my own pace by setting personal mini goals(sometimes even allowing some material to spill over to the next few days).  I’ve actually been able to retain and successfully use more information this way over the past week.

Building Stuff!  Considering the fact that I’ve only been here at Coding House for 2 weeks and only looked into programming for a few weeks before that, I am no expert any any language quite yet.  During my HTML/CSS preparation before coming here, though, what I did learn was a result of using the tools to actually build a website.  In the few bouts of free time I have (often giving up social interaction for it), I’ve taken on a few side projects to help me pick up more material in a short span of time.  For example, I’m currently working on creating a simple single-page website for an international charity I’ve been involved with for a few years.  The site itself is very small, but I’ve been trying to include some interesting features and plug-ins to get some practice in with front end development.  It can be tiring at times to spend even my free time working, but seeing what I’ve learned in such a short amount of time turn into a viable product has been absolutely worth it.  Not only does it serve as encouragement, but I can also add these things to my currently sparse development portfolio.

 

3 Lows:  The Case of the Missing Time Turner

The Command Line:  Using the command line has been…frustrating to say the least.  The command line is an interface that allows users to literally command everything on the computer from a single window.  For someone who has never used it before, though, it looks like a load of Gibberish.  Don’t get me wrong – the command line is a powerful and useful tool once you learn how to use it properly.  The issue is the ‘learning to use it’ part, though.  The tool literally requires its own language which simply calls for a whole lot of memorization and understanding of hierarchies.  It hasn’t necessarily been difficult to learn, just extraordinarily time consuming.  I’m looking forward to becoming capable of using it quickly, though – it makes it a lot easier to search through files and organize.

The Never-Ending To-Do List:  Like I mentioned above, the feeling of never being able to catch up is inherent to a bootcamp.  The entire point is to glean huge amounts of information in a short amount of time.  Making mini goals has certainly helped organize things for me, but the list of said goals seems to get longer faster than I can check items off.  Its like that dream where you are running toward something and can never seem to get there – except less creepy and unfortunate.  The Never-Ending To-Do list is less characteristic of a programming bootcamp and more a usual component of life in the real world.  Preparation is key!

Lack of Time Turner:  No, seriously.  I would pay a whole lot of money for Hermione’s time turner right about now.  I’m here for 60 days and have made every effort to spend as much of my time as possible learning, but there still isn’t enough to do everything I want to while I still have access to the teachers and resources that make the learning process so much easier.

 

The Immersion:  Kudos for Kung Pao  

Camping:  We capped this week off with a camping trip to the Redwoods as a team bonding event.  We played Airsoft and other games, which were a lot of fun.  Then it got dark.  And cold.  And I needed a toilet (which – surprise! – didn’t exist).  And lets just say I’m a city girl.  Being so out of my element was a good experience, though.  Learning to deal with discomfort is a pretty solid life skill.

Dining with Developers:  Sarah (our Food Service Director) put together some pretty awesome meals that definitely provided some bright spots whenever I got stuck debugging!  I’ve been extremely homesick for my mom’s home-cooked Indian meals lately, so seeing Indian stews and spices popping up has been amazing.  Plus, we had some awesome Kung Pao chicken this week.  Not having to worry about cooking and groceries is a huge plus when there’s so little time to learn so much – kudos to Sarah for making life a bit easier at Coding House!

Stockholm Syndrome:  Usually, I’m the kind of person who gets extremely irritated if I don’t get to leave the house and have a change of scenery at all for a full day.  I’ve been going days without setting foot outside here, though, and the kick is that I don’t mind that at all.  I definitely could take breaks and go out for a bit if I wanted to, but I’ve been more interested in figuring the next problem out or designing my next project so it hasn’t bothered me at all.  Stockholm syndrome setting in?

 

Takeaway Advice

  • Don’t beat yourself up over falling behind the instructor’s pace.  Instead, create your own mini goals and work toward fulfilling them on your own time.
  • Build something!  The fastest way to learn something is to throw yourself into the deep end and make it work.  Programming is no different.
  • It is never too early to begin putting together your portfolio.
  • Choose Coding House for the food!

<< Week 1

Week 3 >>

Learning to Code? Check Out These Awesome Treehouse Features!

Treehouse Home

Learning programming skills has become commonplace and, in many cases, necessary for certain jobs.  Responding to this demand, efforts to teach a beginner to code have been popping up in different forms all over the world.  From free online tutorials to expensive boot camps cost up to $20,000, there are a myriad of options to choose from. One of the most popular such endeavors is a website called Team Treehouse that offers high-quality tutorials and workspaces for an affordable price (starting from $25/month).  If rave reviews about Treehouse’s Front-End Web Development track and teaching style aren’t enough, you can even try the platform for free for 2 weeks before deciding whether it is the right place to invest your $25. Considering the average web developer in the United States makes $81,670 and the industry is predicted to grow by at least 20% in the coming years, the investment is probably more than worth it. If you aren’t convinced yet to give Treehouse a try, check out these awesome features:

Tracks

There are 8 available tracks on Treehouse: Web Design, Front-End Web Development, Rails Development, iOS Development, Android Development, PHP Development, WordPress Development, and Starting a Business.  Each track teaches units of information including languages (like HTML5, CSS, JavaScript, Ajax, Ruby, etc.) and allows you to work through examples as you watch the tutorials.Treehouse Tracks           Treehouse Co-Founder Ryan Carson’s favorite feature within the Tracks is the Scheduler.

“Once you pick a Track, you can choose how long you’d like to take to complete the Track. We then calculate how much time you should spend on Treehouse every day and then help keep you on schedule”

 

WorkspacesTreehouse Workspaces

As you follow along with the videos, you can also code along in a workspaces window that allows you to preview your work at any time.  There is no downloading or desktop work necessary.

Forever Expanding Library

One of the best things about Treehouse is their ever-expanding library of tutorials.  Even if you get through all of the tracks, there is always new content being added to its library that you can use to improve your development skills whether you are a novice or expert. Just in the past few weeks, they have come out with several new tutorials, from Git Workshops to Android Animations.  Its candyland for an autodidact!

Forums and the Gamification of Learning

Many online learning platforms employ the use of gamification as an incentive to continue to learn, and Treehouse is no exception.  Users earn points and badges that lead to reward videos that tell fun stories and are great mini-breaks before getting started on the next track. Another one of Ryan’s favorite features falls into this category:

“…getting your answer marked as “Best answer” in the Forum. You get extra points!”

The forums not only provide a space for students to interact as they learn and help solve each other’s issues, they also play into the gamification aspect of Treehouse to inspire users to remain active. Treehouse GamificationSo after reading about all these great, ever-growing features, are you reading to become an awesome developer?  Sign up for your free trial here!

 

“With Treehouse and a little imagination, you can go anywhere…” – Author Unknown

Short courses with Udacity

Hello, World!

Have you ever wanted to learn about a new technology, but not worry about the time commitment of a full-length course? Well, not you can! Udacity just announced their second “mini-course”, a MOOC that is structured just like all their other courses except that it only contains 2 or 3 lessons and can be completed in about a week.

The videos in these courses take on a very personal vibe, showing one person “teaching” another. These make it seem less like a lecturer bestowing knowledge on you (the unknowing student), but more like a friend sitting down with you and showing you something new.

2048Make Your Own 2048

The game 2048 went viral earlier this year. Called the “latest addictive game”, this course walks you through how to modify it (for example, change the numbered tiles to photos) using the source code. 

  • Use developer tools to look at and download all the code that goes into the game
  • Learn the basics of HTML, CSS & (coming soon) Javascript, which make the game to what it does
  • Modify some files to customize the game

Note that right now, only lesson 1 (of 2) is available.

udacityshortWebsite Performance Optimization

In the age of instantaneous access to information, consumers want webpages to load as fast as possible. Slow websites can even lose customers and business, studies have shown. This course teaches you how to optimize websites for speed.

  • Investigate the differences between how mobile and we browsers display information
  • Experiment with tools that measure performance

 

Head on over to Udacity and check out these courses, and then get started on an Accredible evidence page to show off what you make!

 

Happy Learning,

teamsig-small (1)