About 12 years ago, I started learning how to write code. I started by LUA scripting, then moved onto VBA (though I sometimes pretend I never used VBA), then Python, and then I really got into Ruby. At the time all of it was so new to me and learning how to do something in code got me excited.
At the same time, I was also very afraid of it to. I’m not exactly sure why I became afraid of code. Maybe it was lack of experience? Maybe it was with how little I could do with the knowledge I did have? Either way, I stumbled into whats known as Valley of Despair (Or Desert of Despair). Here’s a great article by Erik Trautman on the subject.
My confidence was challenged. My self esteem, lowered. And my learning suffered. I wanted to talk about it to the people around me, but no one seemed to understand. Nor did they want to understand.
I then grew to resent programming, I found it to be a chore. Something I had to write as fast as I could before x project was due at midnight. I actually hated it so much, I changed my major to electrical engineering and stopped programming altogether for almost a year (Ok, I did do a little bit of Matlab and pBASIC scripting, but that was the extent of it).
A year or so passes by and I take Computer Science II, and I start rediscovering all the things I found really interesting. I started to make connections with classmate. And after getting more into programming languages like Rust and more into what interests me, is started to realize that for me its important to explore and learn. That’s what makes this field exciting in the first place.
Some 🥗 for Thought
So I have a couple suggestions if you’re a student:
Have a personal project - Personal projects are often something that employers look for and can be a lot of fun. Personally I’ve been playing around with the Amethyst game engine and hope to even have something to share here in the near future 😁
Have a sense of curiosity, ask questions - Many things are a lot more nuanced than you think. Don’t simply accept something as true because a university professor tells you its true.
Get exposed… to different programming languages - Most colleges will have you use one language for the core CS program, but working in the field now (for albeit, a short amount of time), I have been exposed to quite a few different languages now as well as programming paradigms, design patterns, and approaches. There is no definitive right way, and believing such leads to stagnation.
Get excited - Software developers and computer scientists can create something from nothing. Literally by writing text on a page, we’re able to change the world. This is an exciting and young field where things are always changing.
Find tenacity - Things aren’t going to be easy, learning to program isn’t hard, but working in full development stacks is.
Explore - the field of programming, as previously mentioned, is always changing and expanding. Learning new things and exposing yourself into different approaches, can help when you have doubts about your abilities.
Don’t accept classes as dogma, find what you’re interested in, and never stop learning. You won’t learn everything you ever need to know about in college. You won’t learn everything you need to know on the job. You will always be discovering and being exposed to different aspects of programming.
I’ll admit that I’m not out of the valley of despair quite just yet, but I’m confident in my ability to reach the other side.