How to Become a Programmer in 9 Weeks: Week 3

Screen Shot 2014-08-28 at 9.33.55 PM

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.

How to Become a Programmer in 9 Weeks: Week 2

Screen Shot 2014-08-28 at 9.33.55 PM

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!

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)