One Year Journey Of A Student Developer
Arched over a 2014 Macbook with their faces illuminated you find the developer tapping away writing magical code to make things pop up on the screen which is then sent around the world in seconds.
What a weird reality.
It feels as though the only people that can truly understand developers are other developers. As a beginner speaking to experienced developers I had absolutely no idea about the rules of the conversation.
Speaking to more experienced people in the beginning made me insecure in my ability to write code.
It literally felt as though we were no longer speaking English…
However through persistence and understanding of the journey I was able to put those feelings aside and actually discover a sense of self-esteem in a confusing ecosystem.
On The Joy Of Programming
I wrote my first snippet of HTML a year ago in November of 2015.
It gave me a rush, I wrote something and it popped up on the screen!
“I made that happen” I thought to myself.
A year later I still get that same rush, except now it’s for fixing bugs, passing tests and getting my code to compile on the first try.
It’s fun, it’s addicting.
The rules are clear: “make this thing work”.
But in the early days most of my time was spent looking at error messages for hours feeling frustration, anxiety, even giving up sometimes before returning to the problem a few days later.
It didn’t help that my friends who were non-developers had no idea what I was doing, I had nothing to show for it.
And people who were developers tried to help me, but they took their own competency for granted and expected me to know the same things making explanations create more questions than answers.
I recall one week about 6 months into my journey where I had to roll out an authentication system for users to log in on a Node.js/Express app… It took me a week and a half even with a guide.
When I tried getting help on the project I was being asked questions about the project that I simply did not understand.
Now having gone through those experiences I get asked the same questions from beginners.
I understand of frustrating it can be even with “help” because there are a lot of basic concepts behind even the things that seem like they SHOULD be simple…
Although sometimes, they really should be simple…
It’s been a year since I began coding, I’ve created very simple CRUD applications, simple designs and became involved in the community.
I finally enjoy the jokes of /r/programmerhumor, understand the career concerns of /r/cscareerquestions and read HackerNews religiously.
I solve problems on HackerRank for fun and enjoy the competition CodeWars provides.
And I’m learning more about good product design and well structured code through books like “The Lean Startup”, “Code Complete”, and “Hooked”.
My communication skills have improve a ton, I’m able to find solutions for my own projects as well as answer an increasing amount of questions other students have for me.
The biggest thing I’ve learned is to stop doubting my ability and just enjoy the opportunities and activities being competent about even basic programming provides.
In the beginning I would constantly wonder to myself “how am I ever going to learn all of this?!”, what I didn’t realize is the answer was: one thing at a time.
Comparing myself and my projects to others was the greatest mistake I have ever made.
So what if you’re stuck?
So what if you don’t get it?
Just keep moving forward.
Come back every day and put in your time and focus.
Your brain is building neural architecture it needs to solve these problems every time you work on them.
Sometimes I still look at the top contributors on StackOverFlow; their questions, open source contributions and accomplishments.
I can’t help but look at them with starry eyes hoping one day I can work on meaningful projects that benefits the world and solves interesting problems like they do.
But I have to be honest with myself and where I am right now.
Getting caught up in where you wish you were instead of being involved in where you actually are will hurt you from realizing your own potential.
Do not neglect self-awareness.
On Not Reinventing The Wheel
I spend a lot of my time writing code. With other developers I talk about code, and critique code, it’s easy to become consumed by it as a student.
Truthfully when I began I wasted a lot of time learning things that don’t actually help me become a better developer, think Pareto’s 80/20 rule.
The most challenging part of programming is conceptualizing the problem, and many errors in programming are conceptual errors. — Steve McConnell, Code Complete
Back when I first began I recall taking a bunch of Rails courses that required me to watch the video and basically copy the code.
I learned nothing.
I had no idea what the concepts were.
The only thing that I did learn was how to copy code. Huge waste of time, and very frustrating.
I made real progress when I started FreeCodeCamp which was all project driven not course driven.
This gave me a sense of control over what I was doing, I learned both what questions I had and how to find answers then began to actually make stuff on my own.
I was able to see the big picture, the concepts, the logic, things beyond the syntax.
Now the things I made were very buggy, but accepting failure and learning from it was the way forward.
I learned just as much of what not to do as I did on what exactly to do.
I had less concern for doing it perfect on the first try or mindlessly copy-pasting code without understanding what it was being used for or what it does.
Instead of taking courses on algorithms and data structures I began doing HackerRank’s challenges which were difficult at first but fun and a challenge. I learned way more from actually implementing solutions than I did from passively watching a course.
It’s one thing to learn about a concept, it’s another to actually implement that concept in a simple way, then to implement it again in increasingly complex ways.
Courses are great for teaching you the pieces of the puzzle and when I knew nothing (as shown by the “hand holding honey-moon”) but actually fitting those pieces together is another story.
On Learning A Year After
You’re always learning, the feeling of not knowing enough never goes away.
Even some of the most experienced and talented people are both learning and self-doubting in some way.
Yes it’s okay.
Something I find very interesting is how programming changed the way I thought about things.
You may be aware of the reticular activation system: our brain’s method of filtering things out of our awareness so we aren’t constantly overwhelmed.
When you spend a lot of your time writing code you’re in a state of deep focus and high awareness, you’re constantly scanning for syntax, logic and structure.
And your brain changes to reflect that (see Tetris Effect).
As a result it spills into all areas of your life.
You become more analytical, alert, you see things a lot of people miss, your ability to focus increases.
Or maybe not.
But regardless, as a web developer I’m never bored. There’s always something to do or to learn.
If you do get bored of code perhaps learn about product design, user experience, web design or business.
Maybe take a break all together and use your ability to focus deeply to pick up new skills and hobbies thanks to your ability to learn new things quickly.
For me, at least for now, I’m happy to continue working on my own projects, learn new things and solve interesting problems with other developers.
Everyday is an interesting day when you’re engaged!
Thanks for reading!
Honestly I don’t think anyone will ever read this, I want to work on my writing ability to help clarify my own thoughts and fix errors in my thinking because I think it will help me with the clarity of my thoughts.
At the same times it’s possible that I can end up helping someone else which would be SWEET.
Regardless thanks for taking the time to read through this, you can follow me on Github and look at my own projects here.