What got you past the Desert of Despair?

I really liked this article on the difficulties of learning to code. It might be similar to learning anything new, but there sure is a lack of resources and direction in that middle part — between the “this is awesome!” phase of early days, but before you can actually do anything with your new skills.

What got you past that phase?

I feel the article is a bit unfair. First off, he seems to have started to learn to code when he was an adult, and already had a different career. So yes, he had an uphill battle to begin with. Everything he learned over the past 10-15 years didn’t train him to think like a programmer. Adults are also harder to teach than say children (which has been repeatedly shown in studies).

I started learning programming in Junior High (6th maybe 7th grade – so ages 11 or 12). I was taught to think things in a logical way, identify the steps the task asks you to complete, then think about how you’d write a program to do each step.

I never struggled through any of my programming classes/jobs. That doesn’t mean I don’t get the occasional challenge that takes me 2-5 days to complete/find and fix the bug, it simply means, mentally I can work it out because I was taught/raised in a way that taught me how.

He struggled because he made a huge change. He never had to think that way, he wasn’t taught how early on in life, and therefore he had to start over in how he processed things. Yes, that would be difficult, but I don’t think 99% of the programmers today had that problem. Many started when they were young and thus were taught to think logically from day 1. So do we repress the challenges/struggles we had? No. Because we didn’t have them.

That was a major miss on his part when he wrote his article. How he got started and how the rest of us primarily got started makes a big difference in the experiences we’ve had with programming.


For me, it was finding something I enjoyed doing and didn’t really have any benefit to anyone but myself. I started out doing very small stuff, 5-10 line scripts to accomplish small problems I set out to solve and just kept making them better. The next thing I knew I was working on massive 10,000+ line programs that did a whole lot more and were a whole lot more complicated, including incorporating low level interfaces and even some AI aspects.

I didn’t even realize I was learning and I wasn’t setting out to learn. I was just doing what I wanted to do and making things. Just making things is the most important thing for any new programmer to do. It doesn’t really matter what language or what you make and it’s probably better if you don’t have any intention to show anyone else.

Indeed, you could replace the word Code in the title to any discipline (such as Play an Instrument) and not have to change much else in the article. One of the problems with learning to code later in life is that we are trying to rush the process of learning. As @cpradio said, learning to code from a young age—and thus having plenty of time to grow into it without the immediate worry about getting a job—is the ideal.

So as an adult, what got me past that phase? Ha! I’m not past it yet. But every time I despair, I remember to look back at what ground has been covered. It’s always easy to forget that you are making progress when you keep looking up at the mountain ahead. We tend not to do that as kids passing through the grade levels.

In a word, “passion”.
I go to bed thinking about code, I wake up thinking about code, I fill my waking hours thinking about code. If you don’t have the passion for what you are doing, then it’s extremely hard to bring your skills to a point where you can actually do anything productive or lucrative with them.

What about you @Ophelie?


Heh, I’m still making my way through that desert!

Sometimes I think there will never be an end to the desert, because by the time I have mastered something and think I have almost made it, someone somewhere posts how anyone out there with fewer skills than them have no business calling themselves a web developer, which is very discouraging. I think the key to traversing the desert is to keep on learning and keep your eyes on a goal that isn’t too daunting, but still challenging.

1 Like

That’s a great point @WebMachine; if you genuinely enjoy learning and can keep reminding yourself that you are making progress, you’ll be fine!
You’re never going to learn absolutely everything but that’s no reason not to to focus on reaching that next cactus as you cross the desert. :bamboo:

My problem with the premise is I don’t agree with the philosophy.

Web design and development should thought to be more like art, like music or painting or sculpting. And like any good artist, there needs to be a realization that no art is perfect. There should always be a quest to improve your art, and always look to get better.

If you look at it that way, then the concepts of personal style and mediums change from person to person. You’ll be more willing to embrace new concepts, ideas and better approaches.


I love this analogy because I grew up thinking I was going to be an artist, then somewhere around 16-18 I realized there was no money in it and turned my creativity towards programming. I’ve always treated my code as an art form that mixed style, readability, usability, and performance.

The end product matters. Does it work? Does it work well? Do people like it? Is is maintainable? Can it be better? These are the only questions that matter. So what if I don’t know some obscure way to do this or that that’s specialized in that language? Nobody is going to care. Not the user. Not the person coming in to maintain your code behind you.

(I absolutely do not subscribe to the Left Brain/Right Brain nonsense)


I’m pretty sure that’s been proven to be false anyway… just pop psychology


I’d be interested to hear people’s thoughts on evaluating your own competence. It seems that impostor syndrome is pretty common among developers, so even if you’re actually quite good at what you do, you might not feel that you are. Just how do you know if you’ve reached a professional level of ability (other than being employed, of course)?


I’d really love to hear the answer to that question. I spent years teaching math to teenagers and learned that often self-confidence is key to success, so convincing students that they really could “do math” was half the battle.

Also in web development you need to have confidence in your skills and ability to accomplish something, if you’re ever going to have any hope of convincing your client that you can “do web development” and solve their problem.

This is especially true of freelancers like myself who don’t have an employer. Maybe we focus too much on what others say about our competence and not enough about what we feel is our level of ability. Exactly where is the “edge of that desert”?

It’s basically wherever you define it to be (after a point, of course).
As you say yourself, it’s all about self-confidence.

To illustrate the point, I live in Germany and when I arrived here I worked as an English trainer.
At first, this terrified me. I had zero teaching experience and couldn’t believe I was getting paid decent money to teach people English. I felt like a fraud and I hated my job.

I spoke to my friend about this and she was like “Whaaat??! You’re a native. You’re the expert. I could study for twenty years and not be as good as you” and I was like “Uh, yeah!” and at that moment something clicked - I started behaving like I was the expert and then I started getting treated more and more like I was the expert. And my confidence grew and I landed a job that paid three times what I was earning previously.

Then something unexpected happened. I got offered a job as a network admin (having been recommended as being "good with computers by the same friend). And I was like, “Woah! I can’t do that”, then I was like “Hang on - I recognize this pattern”, then I was like “Uh sure I can do that. When would you like me to start?”

Fast forward some years - things have gone from good to better and I get paid to make websites and program stuff.
I suppose what I’m trying to say is that you have to believe in yourself and as long as you are providing people with something of value, then it’s all good.



Yeah, to a point - confidence can give you the push to go for opportunities, and maybe get you in the door, but once you’re in the job if you don’t have the skills you’ll be back out again in fairly short order!

It’s also good to have some sort of external validation, otherwise you might be wildly overestimating your ability. Have you heard of the Dunning-Kruger effect? It’s basically the opposite of impostor syndrome - the less competent you are at something, the more likely you’ll overestimate how good you are.

Lol. What you saying?


sorry, I didn’t mean that to come across like it was aimed at you! :flushed: But you know what I mean, if confidence by itself was enough there are several members who’d be running Facebook by now :wink:

I just thought it might be interesting to talk about what sort of ways aspiring developers could validate their skills… are there certain skills that are a must to have under your belt before taking on a job? Are there any tests or certifications that are actually worth taking and might give someone an idea of their skill level?

That’s cool, I was just being flippant :slight_smile:
Obviously there’s only so far that confidence alone will get you - my point was rather that lots of talented people are paralysed by the fear of making a fool of themselves, so consequently end up doing nothing.

Do you mean formal qualifications?

Depends entirely on the job. I would even go so far as to argue that (again, after a point) skills are secondary and it is how you sell yourself in an interview that makes the difference.

It’s not hard to learn the syntax, functions and how to use them. The hard part is to learn how to build something that actually is worth selling to a client.

What I found hard is to learn best practices and patterns You can have the theory of what classes, methods or properties are but that won’t get you anywhere.

What helps me is to take pauses on my learning path and wait until I actually miss the whole thing. Maybe sounds weird, but this is what works for me. My opinion is that this question has more to do with procrastination than with programming.

1 Like

Yeah, I do agree with that.

Not so much qualifications like CS degrees or anything like that, but what about tech specific ones (such as the Zend PHP certification, for example), are they worth having? Or what about other things such as coding competitions (Codewars, Project Euler, Google Code Jam), maybe these are a useful was to hone and evaluate ones programming chops?

The original article is talking specifically about the journey to becoming a web developer and does mention some things such as automated testing, OOP, and design patterns… skills that will be relevant regardless of the language. How many of these are necessary prerequisites for a junior-level developer, for example?