Unbelievably stuck

What is this forum?
Is it just a forum to work on Zed Shaw’s workbooks?
I’ve tried working through, “Learn Ruby the Hard Way” twice.
I did the first half of the book twice but never finished the 2nd half.

I’ve been learning to code for 5 years, and I feel often I’ve learned less than people who’ve coded for 1 month.
Often I find it so frustrating, it really obliterates my self esteem.
And I want to quit.

Does anyone have any advice?

Yes, the forum is for people working on my books, but I’ll generally answer questions about anything.

I have loads and loads of advice, but you’ll have to bare your soul a bit more and tell me what what’s happening when you get to the second half of the book. You get through the first part, then when you hit the second part what goes on? Some things I see with people are:

  1. Perfectionism: You make a mistake and then horrible dread fills your heart that you’ll never been a programmer so you give up.
  2. ADHD: You start on exercise 26 and then about half way through you go read about quantum mechanics but actually you just read the titles then watch two movies and play some Fortnite and when you come back it’s a week later and you forgot everything so whatever.
  3. Busy Life: You have kids and a family and that takes up all your time.
  4. Perception: You think programmers start at the top of their code, write everything perfectly, then run it once and go home with their paycheck. When you try to do that your code comes out like garbage and you give up.
  5. Readers: I have videos but you never watch them.
  6. Shoulders: You think you should just be able to do this without watching the videos and when you can’t you give up.

Just some types of obstacles people run into that I see, but maybe you’re totally different. Tell me everything and I’ll see what I can do.

1 Like

Thank you so much for your thoughtful response, Zed.
I think I was all of those things except for 5 & 6. I did watch the videos.
It wasn’t just your books, I’ve done this with.
I’ve finished half of many books, tutorials, bootcamps preps, and so on.

Often times, I’ll ask for help from a fellow developer, and he/she will tell me
I’m not prepared for this basic material, or if I don’t understand it, I should give up trying to code.
I’ve had many professional developers tell me to stop trying to code, as I’ve sucked at it so badly.
It really hurts. It makes me insanely insecure, and mentally unstable.

My goal is to get into a bootcamp, one that you pay after you get a job,
that way I don’t lose my money.
I’ve been trying to do this for 5 years.

Just recently, I was doing a bootcamp prep for the Lambda School,
And I was doing a CSS tutorial on moving and placing objects.
I got help from the Teacher’s Assitant, and I realized, all I could do was try to get
the TA to do the work for me. I understood nothing he was saying on CSS.
This after 1000s of hours, of tutorials and books and so on.
I was crying for a week.
And i quit again, just because I didn’t know how to try.

When you say you’ve been trying for 5 years. What do you mean? Are you on and off when it comes to coding? Because if that’s so then I can understand why it would be slightly difficult. If we don’t practice reinforcing what we learn and apply ourselves then it’s very easy to forget what you learned in the first place…

small breaks, like a week.

1 Like

Alright, so first let me talk about a couple things in your response that bother me (not about you, but the situation):

  1. “And I was doing a CSS tutorial on moving and placing objects.” Ok, stop trying to go to this school. CSS is not programming and it’s a bad teacher that has you doing that to get into a coding school. Just skip them, and that means it is entirely not you it’s them.
  2. “Often times, I’ll ask for help from a fellow developer, and he/she will tell me I’m not prepared for this basic material, or if I don’t understand it, I should give up trying to code.” Ok those people are just being jerks and you should stop listening to them. Obviously you don’t know the material yet, but saying you should just give up is just lazy and mean. Again, it’s not you it’s them.
  3. “My goal is to get into a bootcamp, one that you pay after you get a job, that way I don’t lose my money.” These bootcamps will steal money from your paycheck for as long as they can’t, just avoid them. I’ll give you suggestions on alternatives in a bit.

Now, I’m not trying to absolve you of all responsibility, but I am trying to point out that you are either listening to the wrong people or giving yourself horribly unrealistic expectations.

Perfectionism

I’m going to avoid being your psychologist and simply point out something that perfectionists just seem to not understand about creating something:

Every single thing that is created by any top awesome professional looks like total garbage at first.

I have no idea why perfectionists think that they shouldn’t be making any mistakes while they work, but it’s completely contrary to the way every single creator of anything works. Whether I’m painting, writing some music, writing a book, coding, it doesn’t matter. I always start off with a rough unprofessional piece of garbage and then use my skills to maybe turn it into something professional.

So, when you make that first mistake in the beginning and then beat yourself up for not being perfect, you’re simply just not understanding how to create something. You actually did something good, which is you found a mistake in the beginning where it’s easy to fix. Why would you beat yourself up over that? That’s awesome. It’s better than getting to the end and realizing it’s totally wrong.

Other than that, you need to wrestle this need to be perfect to the ground and try to stop it. Programming is a job where you spend ALLLLLLLL DAAAAAYYYY BEING WRONG. Wrong. Wrong. Wrong. Wrong. Wrong. All day. The computer is brutal. It does not care about your feelings, it just says you’re wrong. Not only that, but it’s wrong many times for arbitrary reasons because some other idiot decided that this is how you’ll do it so you have to just suck it up and play along.

If every time you’re wrong you fold and have a meltdown then you’ll never make it. What you need to do is beat this into submission. Every time that feeling comes up take a break, and tell yourself it’s a totally false garbage feeling or thought to have. It is just wrong. You are supposed to make mistakes, and lots and lots of them.

Another thing that comes up is people will do this:

  1. Work on a complex challenge for about 30 minutes without any study.
  2. After this measly little bit of time they see that they don’t magically know the answer.
  3. They then flip out and proclaim “I’ll never be a programmer!”

I’ve worked for decades with people of all ranges and skills, and I don’t know a single programmer ever who figures out a complex problem they’ve never seen before in 30 minutes. Everyone I talk to says they take about 2-3 months to get up to speed on a new code base. TWO TO THREE MONTHS. And these are experienced veterans. How is it possible that your totally untrained self is going to get code in 30 minutes when a top pro take 3 MONTHS?

The other way this one comes out is people who think they should be able to figure code out “naturally”, which usually translates into “staring at the code like in a movie and it flying around my head and I magically see the answer then hack NASA and make all the money”. Nobody competent in the field of programming just stares at code. They study it, alter it, diagnose it, draw up diagrams, research papers, read on the internet, google stack overflow, and do anything they can to take the code apart and understand it. Again, why should you have some magic brain that can see flying magic code when every programmer on the planet doesn’t do this?

The gist of all this is: Your perception of what you should be able to do is way out of whack. You have to work and build up your understanding, and none of this is magic knowledge. In fact I do know real actual math geniuses who suck horribly at code.

ADHD

Chances are you might have ADHD, so maybe go talk to someone, but if not then there’s a good chance you just avoid doing the work you need to do so that you can’t face failure. The best advice then is to use the Pomodoro Technique to work in small chunks and build up your tolerance, and to get better and embracing failure. One good way to embrace failure is to call everything you do a “study”. If you’re sitting down and treating my exercises like they’re fully fledged professional programs you’ll sell then you are doing it totally wrong. You should approach it like it’s a study. An experiment. Something that is supposed to be garbage.

Busy Life

I bet if you wrote down how much time you spent on social media or TV or video games you could find 3 hours a day. If that’s the case, then shutting down all your social media and selling your TV might be the only way to stop it. However, I have another suggestion that might be more practical:

Look into local community colleges and try to study there. A class forces you to show up and do the work. If you can sign up for classes and make sure you stay on campus to do all your work, then you’ll be forced to rework your life to make it happen. Also community colleges are usually inexpensive and have more night classes.

Now, if when I say “community college” you get all uppity and think that’s beneath you then I’m going to refer you back to your Perfectionism and tell you to work on that arrogance.

Perception

If you are starting at the top, typing everything in, and then expecting it to run then you have not been watching my videos at all. Even when I have the code right in front of me, and even though I’ve typed it in hundreds of times, and could probably do it from memory, I am only typing in a small amount at a time before checking it. Nobody codes like this. Everyone builds code up gradually, checks it as they go, and cleans up or even deletes code as they learn more.

From now on, when you code, I want you to do this:

  1. Write a little bit of code and check that it runs.
  2. If you try to write a whole lot of code and you have an error, then you are now required to delete your file and start over. DELETE THE GARBAGE. This is the only way to make you work in chunks.
  3. Keep track of the mistakes you make in a notebook and then devise practice sessions or check lists to reduce them in the future. Did you see how I said “reduce” rather than “avoid”? You will never prevent all bugs. Your job is to reduce the probability as much as you can, but accept that you’ll always have some defects.

You’ll think this is insane because you’ll slip up one day after 2 hours of typing in 300 lines of Python garbage and you’ll swear you can fix it. But I’m telling you, all that work is wasted work because you weren’t being conscious of what you did as you did it. It’s better to just toss it out and start over the right way than to try to beat a dead rotting horse until it works.

This DELETE THE GARBAGE mantra also applies to first attempts at code you write. If you try to make something and you create some garbage, it’s better to throw it out and try again. The reason this works is a lot of programming is learning about a problem, so none of that first attempt work is wasted. You learned something and then your second or third attempt will probably be better simply because you learned something.

Conclusion

Now, I don’t want you to take any of this to mean I know anything about you as a person. I’m just making guesses based on the kinds of problems I see people having. The hardest work you have ahead of you is to start getting ahold of that Perfectionism and not let it get in your way. If you can start accepting the fact that you and nobody else is perfect you’ll do a lot better at everything. After that it’s just a matter of doing the work slowly and building your understanding of what’s going on.

I hope that helps.

EDIT:

One more thing I need to add. I believe the difference in mindset between me and you is possibly this:

You believe that your brain should be a perfect machine that understands the world perfectly as long as it’s according to reason. I call this “Cartesian Thinking”, from Descartes who believed that–while what you perceive may be flawed—your logic and reason can be perfect. People like this assume that what they think is correct, and when they’re presented with an obvious example where that’s totally wrong, tend to collapse.

I believe that Descartes had no idea how the brain really works, and that my brain constantly lies to me, even in my own thoughts and logic. Memories are flawed, perceptions are altered by these flawed memories, and emotions change how you do almost everything. I assume that my brain is severely flawed and gets everything wrong, so I have to check it or accept it. In code I check it. In painting I accept it (and kind of like it).

I think additionally the Cartesian Thinking is anti humanity and hateful of what makes us human. I believe that my way of thinking embraces what it means to be human and celebrates it (even if I need to constrain that so I don’t blow up a website with my terrible codes).

4 Likes

Hey Zev,
thank you so much for your thoughtful response.
It really means a lot that you care.
I really appredicate it.

#1: I do the Pomodoro Technique.
#2: I have watched your videos.
#3: I do have ADHD, but i try to fix that with diet.
I find that when my room is clean, and my life is organized, I focus much more efficiently.

I guess the main thing I got from this is my obsession with perfectionism.
I have severe issues with that. Extremely severe.

I’ll try to avoid social media. I only watch TV while I’m eating, because I feel weird eating and coding. But I feel I’d do better if I avoided all media until in general, just for my health. I think the brain can only take in so much.

Why are you against boot camps, but for community colleges?
I went to my local community college but found the state’s education to be outdated.
I’d rather just finish your books and do online courses. or courses at a boot camp where you pay after you get a job.

If I don’t get into this Bootcamp, I’ll go straight back to your books (and videos), and finish them.
Why are you against bootcamps again?
I feel so much more confident with this forum now.
Thank you!

The reason I’m against bootcamps is they’re mostly a scam. They can’t possibly teach you enough to actually get or keep a job, but claim they will. That attracts people to them who are desperate and that never leads to a good situation educationally. They also put unqualified people in charge and lie about placement. But don’t take my word for it, listen to the NYC AG and the $375k settlement against Flatiron school for lying about placement and other illegal practices like running a school without certification:

Most of them all do something like this. They are bad news.

Now, a community college is going to teach old stuff and slowly, but computer science doesn’t actually change all that much. You learn the basics, you take your time, it’s cheap, qualified instructors, and they force you to take classes. If this is somehow beneath you then…maybe you aren’t listening to me about the perfectionism thing? :wink:

Do you live in the NYC area, Zed?
I’m actually going to have lunch with the founder of the Flatiron school next week.
I’m excited! I admire him a lot!
I’m sure he’ll have a reasonable explanation about this.
NYC regulators are known for stifling innovation, and being anti-business.

I’ve met like 100 developers who’ve graduated from the Flatiron School, and they all have nothing but great things to say about it. They’re also expanding and have campuses all over the world now.

Again I did go to my local community college, and just didn’t like the atmosphere, or the curriculum.

that being said, I think self-education is the best, and I know you’re really good at it.
I don’t have the funds for a bootcamp (unless its free upfront) or a community college.
But as long as this forum is open, I’m confident I can through your book/video series, after I finish this other free course. I start too many things and not finish them…

Also, i find in order to code or do anything that takes a lot of focus, I have to my room perfectly clean before I do so. I guess that’s perfectionism. I think it helps.

Yo this forum is amazing! Definitely a good read with very unique perspectives (if that’s okay to say). I did like the part where @zedshaw mentions going at it in chuncks! I need to do that more than I’m used to as I always write the code first and when Im done I’m stuck with like 50+ errors lol (not literally). Slow and steady wins the race as long your determined to follow through all the way to the end.

The only people who feel that regulations stifle innovation are people trying to get away with breaking the law. In the case of Flatiron, they were brazenly flouting their violation of a simple registration with the NY state government and also lying about their placement rates. That’s not the only thing they were doing, and I plan on writing about it shortly.

But, it sounds like most of my advice has fallen on deaf ears, so hopefully you continue with your plan and it works out well for you. I’m warning you that Flatiron is not a good idea, but if you are determined to do it then go ahead. Just remember that when you get to a point where it’s obvious you aren’t really learning what you were promised that you are allowed a refund according to this settlement. You should also look up the requirements for a school in the state of NY. Many times they require pro-rated refunds if you quit before the end of the term. Also, the NYC AG would be interested in knowing if they continue to promise placement rates that are unrealistic. They aren’t allowed to count part-time work, people they hire as “assistant instructors” or “group leads”, freelancers, or anyone not working directly in technology.

Hey Zed,
I look forward to hearing what you write about Flatiron.

What you said hasn’t fallen on deaf ears.
I live check to check, and don’t plan on spending on a bootcamp.
The only exception would be if its free up front, that way there’s no risk.

A friend of mine who taught at Dev Bootcamp recommended to me your books.

I’m also excited to meetup with the Founder of Flatiron tomorrow for lunch.
What he does seems glamorous. I’ve talked to over 100 bootcamp graduates and they basically all say it was one of the best things they’ve ever done.

Still I don’t have the money, and even if I did, i’d pay off debt rather than spend it.

That’s good, but remember that he was actually caught lying by the state on two major fronts for running a school, and all of the graduates who had a good experience have a vested interest in keeping Flatiron afloat so their resumes continue to look good.

I had a great time hanging out with him.
i didn’t mention what you told me.
Again, I would only ever go to a bootcamp unless i paid after i attended…

If you do a bootcamp that requires paying after, have a lawyer review the contract. Many try to skim off your salary for years and multiple jobs, sometimes taking as much as 15-30% of your annual pay.