In the course of my learning development (seven months at this point) I’ve heard quite a few things from other veteran developers, all of whom were trying to be helpful. Or I’d ask a question and get one of these things in response because it makes sense to *them*…they don’t realize I have no point of reference.
That being said, when confronted with something I just don’t understand, I get frustrated. I don’t mean I don’t understand it as in “I can’t figure out how to write this loop”. I mean I don’t understand a concept or literally, what someone is talking about. And then I get to that point where I actually almost start to cry in fury. I’m frustrated because they can’t explain whatever it is I don’t understand..mostly because I don’t understand exactly what it is I’m not understanding.
Trust me. I have no problem asking questions. I also have no problem saying, “what?” or “I don’t know what that is.” But the hard part is when the other person can’t explain it to you. Ever seen these “brain stretching” examples?
Explain to a blind person what the color blue looks like to you.
Now explain to a deaf person what music sounds like.
Now, describe to your friend how to make this PB&J as if they were an alien from outer space:
they won’t know what a knife is, what ‘spread the jelly’ will mean, or even English.
There it is, I just summed up what it’s like to be new: blind, deaf, and from another planet. As a blind deaf alien, I’m going to describe some things that are said to me as the Earthlings attempt to help me learn about their planet, and why these things are not helpful (to me, anyway).
You don’t have to be a web developer, you know.
Huh? What do you mean? When someone says, “coder/programmer/developer” I think of three things: the Mars rover, my smartphone, and the internet. The word “app” confuses me because I can’t quite figure out what people mean with it…I’ve heard so many things called apps and I can’t tell the difference. After I’d learned the basics of how-to-code (loops, arrays, dictionaries, etc.) I sat there and sort of stared at the wall.
Like…how exactly does THAT make the internet? I think I actually said that at some point. As in, how does writing these things make the internet?! I became a web developer because I wanted to make web sites. Oh sure, I can use WordPress (ahem) but I mean make one *myself*. There is a reason various “code schools” are so popular. The big one in Austin is Makersquare. If you look, you’ll see the price tag is $13,880 to “learn to code” in 12 weeks. Reason it’s so popular? Because so many people are saying OMG I DON’T KNOW WHERE TO START WHAT DO I DO?
Because…. here’s the problem: there is so much back-knowledge. SO MUCH STUFF TO LEARN BEFORE YOU CAN DO ANYTHING AT ALL.
One senior developer made a comment along these lines: “It’s hard because it’s *supposed* to keep people out. Not just anyone should be touching this stuff.” I originally thought he was joking. Then I realized, he really isn’t.
I’m starting to agree with him. I mean, I wouldn’t want my mom to try and build a website. OMG no. But I have now seen site after site after site that looks like she did. Some parts of the internet are awful. Some APIs are designed by elephants with paintbrushes. Some blocks of code were actually written by someone banging on the keyboard with their foreheads.
That being said, let me say this: I can learn this. So can most people. But it’s *hard*. And it should be. And there are so many mountains of things-to-learn-before-I-can-do-anything that I am going slowly. Sl-o-o-o-o-wly. Those places that say they can teach you in three months? Sure, they can teach you the basics (coding, databases, frameworks) but can they teach you to actually be a developer? I don’t think so. A developer, to me, is what someone *is*. I can learn how to dance ballet, but does that make me a ballerina? NO. Years of practice…yes.
Just today I finally figured out how to get on IRC with my friend Matt’s help. I recognized it immediately: I used something just like it in 1993, the year I found a computer lab as a freshman in college. Using IRC this morning is what prompted me to write this post because I was wondering…how many people using IRC have been using it for twenty years? And…how many of those people are people I know now, as senior developers? Oh, I bet a *lot* of them.
Just go make stuff. Go find a project you like and contribute to it. Don’t be afraid to try things.
Many developers pointed out how they just essentially sat and played with stuff for months or even years. Usually…they were kids at the time. That is why this frustrates me. I’m not a fifteen year old that wants to just sit every day and play with “cool things” and “get excited to make something awesome”.
Granted, yes, I want to play with cool things and make awesome stuff, but I don’t have the luxury of being able to sit and just play with it for years. I have to get good-enough-to-make-things as fast as possible. It is frequently suggested, too, that to practice working on things, I need to make things. Yep, you’re right. But to tell me to go find a project I like? Github has more than six million repositories! I suppose I should just start sifting through them? Here, I like science. Let’s have a look through these….
It was *much* more helpful when I went on Twitter and said I liked OOP (Object Oriented Programming) the most out of everything I knew. I then said: How do you recommend I get really good at it? Quite a few people said the three things above. Fortunately one person said something more useful:
See this? He not only gave me direct suggestions on projects, he also pointed at who to talk to about it. The hard part is this: I’m new, I have no GitHub cred, and I’m not sure what to do. So I can’t just pick some random project that looks cool, fork it, work on it, and then pass it back. I mean, I could, but that’s not super useful. What I want is to be part of something that I will work on for a long time. Personally knowing the people of a project I might work on? Priceless.
Stop yak shaving.
I hear that one so much, I want to scream. I’m not yak shaving!!! If I were farting around, sure, tell me I’m yak shaving. But this is what happened:
- Google “how to program”.
- Stop. Go learn to use the command line.
- Return to google results. Go use Codecademy to learn Python.
- Try to use Python on my own computer.
- Read multiple pages on how to use IDEs.
- Try to download extensions.
- Read multiple pages on how to correct the path in my computer.
- Stop. Take online course from edX on Computer Science 101.
- Veer off course after learning C in that class, and try to learn Java (don’t ask)
- Discover I need to know HTML5 & CSS in order to make web pages. Go learn that.
- Decide eventually language of choice is PHP.
- Try to learn framework (Symfony). Discover I don’t know enough PHP.
- Stop. Go read book on advanced PHP concepts.
- Go back to Symfony documentation, get confused. Look for tutorials.
- Go through tutorials.
- Realize I don’t know how to use/make/whatever a database.
- Stop. Go get book on SQL for Dummies.
- Come back to framework.
- Stop. Go learn JQuery and JSON. Deliberate on what the hell Node is
- Need help. Stop to learn IRC so I can talk to other people.
Do you see how many times I have to stop, go learn a huge element, and then come back? For the record, I’m working on the last few (Symfony tutorial, SQL, JQuery etc.) all at the same time (right now!) My thoughts are this: I have learned how to ballet dance. And now I need to practice and learn and go to lesson after lesson after lesson. Can I do stuff now? Hell yeah. I’m perfectly capable of doing a LOT of things. But I feel like I have a tippy-finger grasp and I’m climbing up a sheer rock face without a line. Am I capable to do work-for-money? Yes. Do I feel confident: HAHAHA no. Do my things work anyway? Yes.
Here’s the gist of what I’m saying: There is so much back-knowledge needed to be a web developer today that many are derailed for months trying to learn everything they need to know before they can learn anything at all. PLEASE REMEMBER THIS!! I’m one of those people that didn’t use a computer regularly until I was in my early twenties, and AOL was already up. Therefore, I originally only knew how to point and click on things.
I’m pretty sure most things have forty-seven steps I don’t know, too. My entire thought in this post is that so many developers that have been doing this for years don’t remember that you can’t tell me step #47. I need DIRECTIONS. I said that to someone once and got this as a response:
Just go poke it till you figure it out.
How about you learn to drive a car by getting in it and pushing on all the pedals? Sounds just as smart, to me. I read manuals. I watch tutorials. I love directions that tell me step by step how to make the [insert cool thing here]. And THEN, once I have followed those directions, I understand how it works and can *now* poke it to see what it does. Here’s a summation of this post for senior people:
- A new person doesn’t know what they don’t know.
- A new person is very willing to go learn what they don’t know, providing you tell them exactly what’s missing.
- Please remember that most people need things explained starting at step #1.
- Myself and other newbies have no problems reading directions…if we can find them. Please point them out. Google isn’t that helpful sometimes.
- and lastly…please don’t get frustrated with us. We’re frustrated too.