Learning how to code is NOT easy

I wrote this letter to myself as a part of an assignment in the Udacity Front-End Web Developer Nanodegree course I’m previewing today. It’s a snapshot of where I am in my career journey right now.

Letter to self

Dear Vanessa,

You already know how tough it is to learn how to code — last year you completed a three month, full stack, web development bootcamp! However, you’ve been struggling with staying motivated lately when you think about how much you still have to learn, and how you’d love to specialize in front-end development.

You’ve also felt discouraged as you realize that finding a full-fledged web developer job in San Francisco is very competitive, and you still need to work on your algorithms to master those tough interviews.

However, you know you can solve problems, and you know that you’ve already come a long way. Sometimes you just need to remind yourself of your goals and how to persevere even when the going gets tough.

Problem Solving

How will you solve your problem?

Something I will list first is that after working with a problem for a long time, sometimes the best thing is to take a break, and most importantly get a good night’s sleep (Cathy Bechler mentions this in her post).

Then, if looking for answers online (e.g. StackOverflow) proves fruitless, ask your software developer friends! Post your own question! Sometimes you have to risk sounding stupid — and a lot of times your question won’t even be that stupid after all. Everyone was a beginner once.

Skills I can use to help tackle challenges

What skills do you have now that will help you tackle challenges?

As a result of years of being an enthusiastic student as well as my bootcamp experience, I am able to reach inside and remind myself that just because I don’t know something today does not mean I can’t learn it tomorrow, or next week. Change of mindset is very helpful when approaching a problem.

Another skill is knowing when to call it a day. I feel that I’m pretty good at knowing when I need a break so that I can come back fresh and tackle the problem.

I also consider myself to be very good at Googling the right thing to find the answer I need.

Growth Mindset

How will a ‘growth mindset’ help you reach your goals?

As much as I love learning, when I get stuck, and I mean REALLY stuck on something, I can get so frustrated that I want to quit and do something easier. This becomes a negative cycle of me feeling bad about myself (“I am a failure”) and then abandoning my goals of self-improvement.

This fixed mindset has to change. Most of all, I have to remember that where I am now is not indicative of where I could be in the future. It’s GOOD to fail sometimes. Failure shows you what you still need to work on. It’s GOOD to get stuck. It means you’re working on a worthwhile problem and there’s something to be learned there.

In contrast, the growth mindset embraces failure as a learning experience and encourages action over rumination (or, getting stuck in your head and feeling like crap when you feel like you aren’t learning fast enough).
“How to navigate the ups and downs of learning to code”

I often find that writing my thoughts down is a great way to foster my growth mindset, especially when I’m feeling discouraged or down on myself. By getting out of my head, I’m able to start thinking more rationally and find the motivation to move forward.

Goals

Something Joyce Akiko wrote in her post really resonates with me:

We risk being known as people who can’t follow through, who lack focus

As much as I don’t want to care what other people think, this is a fear that has plagued me for most of my life, and usually my way of dealing with it has been to shift to another goal I’m confident I can achieve.

Recently I’ve realized, however, that I’ve already started my coding journey, and there is so much that I enjoy about coding and actually building apps people can use (as opposed to the administrative or operations work I did in my past jobs) that I shouldn’t abandon my desire to become proficient at coding. The reason why I got into coding in the first place was so that I could have the skills I needed to make design or interface changes I envisioned or to create prototypes of my ideas. I wanted to be a self-sufficient builder of web experiences, and that is still my personal goal.

In the long term, my career goal is to become a product manager. I know that in order to get there, I need to have a solid technical foundation so that I can effectively communicate with product engineers. I think the best way to do that would be to land a front-end web developer job.

Additionally, I have a couple of website ideas related to dance training and concert tracking that I would like to build on and eventually launch.

Don’t give up!!!!! You wanted a job/career where you could use your brain more — go get it!

Love,
Vanessa


Articles referenced in this post:
  1. http://www.codeconquest.com/blog/how-to-navigate-the-up-and-downs-of-learning-to-code/
  2. http://blog.thinkful.com/post/98829096308/my-first-month-coding-an-emotional-roller-coaster
Advertisements

5 thoughts on “Learning how to code is NOT easy”

  1. youre right– but i want to argue with it anyway and this is why: coding can be a LOT easier. most of the things that make it difficult to learn are really optional (sometimes arbitrary.)

    if youre already dedicated to teaching yourself how to code for example, or invest in a college course, you can definitely learn python or javascript. depending on the approach, they are not too difficult. but the course can be– it depends on the course.

    the important point im hoping to make is that when i was a kid (in the 80s,) coding was so easy to learn that a 5 year old could do it. im not making fun of you, its gotten a lot more complicated.

    heres the thing, though. programming consists of very easy-to-learn ideas like variables, loops, and function calls. in fact i would say 90% of it is just dressed-up glorified function calls. how they get dressed up makes up most of the complexity. objects? terrifying stuff for many people. also optional. recursion? you could code for years without it. its difficult for people to get.

    you can either learn the basics first, get a solid foundation and a lot of confidence and understanding of the subject (which is old-school and the approach i recommend for most people) or you can start at the novice level and start putting together code that does amazing things, and learn how it works as you go.

    the second approach has merit– its a lot harder though. im actually amazed at what “kids today” can put themselves through. i offer the “old way” to those who think it is too difficult. because really, its only difficult if the way its being taught is difficult. the vital stuff– the stuff you have to know, isnt hard. its just getting mixed in with harder (more optional) stuff, which could be easier to pick up if they saved it for later. take care.

    1. Hi codeinfig,

      I appreciate your reply! I think we are on the same page. Learning the fundamentals of how to code (loops, variables, function calls) are quite easy, I agree. The challenge I’ve been up against is sifting through all of the bells and whistles out there and narrowing down my focus to what really matters. Also, since I am currently looking into getting into the industry, there are often quite a lot of expectations on job postings about what technologies you’ve already worked with…e.g. Angular, React, Foundation…frameworks ad nauseam. This can be very overwhelming to someone who has only been coding for less than a year. However what I’ve discovered recently, to your point, is that if you focus on mastering the basics, you find that learning everything else is much much easier. Unfortunately, a lot of programs out there expect you to adopt all of these technologies without understanding what’s going on under the hood. This is a surefire way to set people up for frustration and disappointment. My recent focus has been to dive deeper and really understand the tools I’m working with…because if I’m going to use tools that complicate things, I had better understand their complexity.

      My aim in naming the post “Learning how to code is NOT easy” is to shift the mindset a bit … I think when, as a beginner, you’re constantly told, “coding is fun! coding is easy!” when you start running into challenges, you start to feel like you’re stupid for not understanding, when the reality is that there is a lot to learn about coding. It’s not always going to be easy (As you said in your most recent post — thanks for the link!). Side note: I thought this short essay had some compelling points as to why coding shouldn’t be heralded as “easy”: https://aeon.co/ideas/coding-is-not-fun-it-s-technically-and-ethically-complex

      1. you said it very well, and made great points there.

        i think its safe to say that coding can be hard (and it definitely is under industrial workloads!) but there are many things that are still writing code that are both fun and easy– and that is suitable for many students.

        i want code separated into fun/easy code and difficult code, and really difficult code.

        all of those exist, and not all of them are necessary, unless you are trying to get paid. theres no non-challenging coding that you are likely to get rich from. its actual work! thanks for the reply and the link to the essay. good luck with your next job 🙂

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s