It’s been approximately three months since I last (first) blogged about my journey of learning how to code.  For almost all of the last three months I’ve thought, “I’ll write a new blog entry once I feel like I have really learned something substantial.”  In the last couple of weeks I’ve come to the humbling realization that if I wait to blog until I feel I am an “expert” in anything, I will be waiting quite a long time indeed!  I’ve also realized that because of the learning path I chose, not being an expert in any one thing right away is perfectly fine.

So, when I wrote my first blog entry I had a goal but no real game plan.  Step one was to get a game plan.

Actually, step one was to interview everyone I could think of in the tech industry.  I reached out to friends and family through social media and contact lists, and I was immediately overwhelmed (in a good way) by how supportive and informative everyone was.  People talked to me through messaging platforms, on the phone, and through Skype.  What I took away from those discussions, (in addition to gratitude for those who had shared their time and advice with me), was that one of the most important things about learning to program or becoming a programmer is to be autodidactic.  Having the ability and desire to self-teach is essential.  For that reason, a lot of the people I talked to thought that bootcamps were not necessarily the best nor most fiscally prudent way to learn to program.  Yes, at a bootcamp there is structured learning and a set timeline for learning.  However, bootcamps are typically not cheap by any means, and nearly everyone I talked to who was working in the tech industry emphasized that completing a bootcamp–especially since I already have a masters degree–was non-essential.  It might be a good way to learn, but it was not the only way to learn.  I decided that I could always enroll in a bootcamp at a later date, (especially if my self-teaching was too darn slow), but that I would use my evenings and weekends as learning time to begin with.

Followed quickly by the emphasis on programmers needing to be self-motivated came the question that many asked:

“Do you like programming?”

At first I thought, “Does it matter?”  After three months, I now understand that, yes, of course it matters.  Wanting to learn about how to code or program in order to make money seems to be a pretty common thing.  Why wouldn’t someone want to learn a set of tools that would allow them to increase their earning potential exponentially, either as a career or as a side hustle?  I admit, in addition to being curious about learning for the sake of learning, I’m definitely motivated by the prospect of financial stability.  Beyond this, I learned early on that much of programming is about problem-solving.  First, one must understand how to find and define problems.  Second, one must know how to fix problems.  Third, one has to be patient enough to do this without going crazy.  That is a simplification, and there is of course more to liking programming, but these have been a couple of my initial impressions of the discipline.  I thought that I would like programming, but I knew that the only way to find out was to try to learn to program.

I decided to start learning about HTML and CSS because I had already dabbled in this before.  Any 90s/00s kid with a MySpace or a Diaryland probably remembers the awesome power of tinkering HTML.  I never designed my own layouts on these sites, but I modified existing layouts heavily and got pretty comfortable in that world.  It helped that my father had me doing HTML grunt work from the age of 10 or so onward, for the incredible sum of $10 per hour.  I never did anything high-level, (my most memorable project involved typing lots of Hex color codes), but it all counted for much-needed exposure to the discipline.  A few months ago, I knew my HTML skills were rusty and that I didn’t have a solid foundation of CSS and its best practices.  I understood a lot of the syntax, however, and so this was a good place to start.

Here’s where I should also admit that I picked HTML and CSS because I wanted to start my journey with something that was “less overwhelming,” which is actually something I said in a meetup early on.  Thankfully, the lovely front end developers at that meetup understood what I meant and didn’t (rightfully) call me out on how ignorant that statement is.  Front end development is incredibly complicated and time-consuming, and although I had a bit of understanding of HTML and CSS before I started on my learning path, there was and is an astronomical amount to learn about front end web development.  More on that in a bit.

I started with W3Schools tutorials in part because I didn’t know where else to start.  And also because the W3 website is the first non-advertisement website that pops up when you google “learn HTML.”  After about a week of slogging through tutorials, I decided to attend my first meetup.  Unspeakably nervous, I went to a League of Women Coders meetup.  I met some really awesome and friendly women, one of whom introduced me to Codecademy.  For a $20 per month subscription, Codeacdemy offers learning paths.  I selected “Full Stack path” with a curriculum of HTML & CSS, Sass, JavaScript, jQuery, AngularJS 1.X, Command Line, Ruby, Ruby on Rails, Ruby on Rails: Authentication, and Git.

So far, I’ve completed the first module, HTML & CSS.  This is in part because, as I said earlier, there is a lot of learn about HTML and CSS!  After my first meetup, I started attending as many meetups and workshops as I could, many of which relate to CSS.  With what I’ve learned I am building a new website for my library, found here: http://nybg.beta.libguides.com/.  The other reason for my progress is that I stopped the Sass module soon after starting in order to focus on the fundamentals of programming before getting more deeply involved in learning a language.  I think that this was the right choice, as it has built my basic knowledge and also allowed for me to attend (and understand!) meetups that are geared more towards back-end development.  I am getting more out of my learning now that I understand the structure of the domain a bit more.

A full list of my learning activities including workshops, meetups, online courses, and books I’ve read from September through December can be found below this post.

Well, so, what next?  As is probably clear from the narrative above, I’m attempting to gain familiarity in many different programming areas, and not developing expert-level knowledge in any one area to start.  This is a little difficult for me because I can sometimes be a perfectionist, but I believe that learning in this manner will allow for me to develop a solid foundation and an increased domain understanding.  So, in the upcoming months I plan to complete the Sass module through Codecdemy and begin the JavaScript module.  I am also registered for a 2-day workshop in February focused on using Python and R to work with biological data.  Over the next month, I plan to develop my understanding of computational statistics in preparation for this workshop.  In January I have a meeting with someone in the Lubin School of Business at Pace University to discuss the finances and legalities of starting my own web development consulting business.  In part, this is because I don’t see why I should delay starting my own business if it’s something I think I’ll do eventually.  Additionally, Tarah Wheeler Van Vlack, author of the book Women in Tech, councils that having one’s own business on a CV can help to mitigate gaps in employment history that come with having a child.  The things that women must consider, right?

I am also eager to begin giving back by sharing my new-found skills and knowledge with others.  However, I recognize that I’m probably not quite at the level when I can teach others.  I hope to be in the position to volunteer at one of the many wonderful tech education organizations in NYC by July of 2017 (six months out).

When I first started this project in September, a good friend told me to spend 20 hours per week with my learning.  I have fallen short of that goal, but I still feel that the last three months have taught me quite a lot.  Actually, I have learned more in the past three months than I thought possible.  I hope that my 10-15 hours per week can become 20 hours per week in 2017.  I can also say with certainty that this is the right time in my life for me to be learning these things.  While I was encouraged to learn Python several years ago, I don’t believe that I would have had the patience for programming in those days.  I think that my library degree and my work in the domain of botany have prepared me well for this new body of knowledge.

Do I like programming?  I like what I’ve learned of front-end web development.  I am intrigued by algorithms and logic.  I know I like at least one area of programming, and now I am eager to learn if I like other aspects.

 


Professional Development 2016: September, November, December

Meetups & Workshops attended

  • 10/5/2016 Hack the Night Away! League of Women Coders through Meetup.com
    • My very first meetup.  This is when I learned about Codecademy.
  • 11/10/2016 Hack on Experimental Layouts in CSS CSS Layout Club NYC through Meetup.com
    • Mind-blowing introduction to Grid.  Holy shit.
  • 11/15/2016 Flexbox Workshop Girl Develop It through Meetup.com
    • My introduction to a powerful and flexible framework!  A very fun and empowering workshop.
  • 11/29/2016 Pyladies + DjangoNYC Presents: Git Workshop NYC Pyladies and DjangoNYC through Meetup.com
    • Wherein I learned what I do not yet know about the command line.
  • 12/8/2016 Intro to Algorithms Girl Develop It through Meetup.com
    • My lack of background with a specific programming language limited me a bit for this workshop, but overall I felt I had a good understanding of the material and it dovetailed nicely with my online course about the foundations of programming.
  • 12/28/2016 Coder Career Series: Algorithms & Interview Prep Byte Academy: Python, FinTech, Blockchain, Data Sci, MedTech through Meetup.com
    • Coming up!

Online Courses completed

  • Learn HTML & CSS – Codecademy
    • A solid beginning to HTML and CSS.
  • Learn HTML & CSS: Part I – Codecademy
    • This module was slightly different from the first in that it involved more project sites.  Super useful for beginner learners and those who want to brush up on these skills.  No flexbox or grid, but a good foundation for boostrap.
  • Foundations of Programming: Fundamentals  – Lynda.com
    • I could listen to Simon Allardice talk all day.  I went through this class in the evenings, stopping for the day when my mind started to wander.  A very good course that I would reccomend to others.

Books read