20 votes

Teach Yourself Programming in Ten Years

5 comments

  1. [4]
    intuxikated
    Link
    I am somone trying to learn programming on my own. Tbh its pretty hard and boring at start, I started with this book. Half way through it I lost interest and dropped learning programming...

    I am somone trying to learn programming on my own. Tbh its pretty hard and boring at start, I started with this book. Half way through it I lost interest and dropped learning programming completely, also lot of people advised me that "if you are not enjoying it may be because programming is not for you". After couple of months I heard about CS50 I rolled in and I liked it.

    I just finished week 7 of CS50 (I took way way more than 7 weeks because of my other works). Along with this I also do some projects over at hyperskill, I don't think "fun" or "enjoying" is the word I would choose to describe my relationship with programming. I hate it sometimes (especially when I had to spent hours looking through stack overflow threads to fix a very minor bug like forgetting a quote at the end). I enjoy it when I get to solve some real problems (like when I created a program to create a csv file of a list of students and their details for my mom).

    I dont know how to explain in English the feeling I get when learning new programming topics. I am not really excited about it, I dont hate it either, If I had dropped programming completely because "I didn't enjoy it" I would've missed out on the things I enjoy about it.

    IMO, you should learn programming however you please. There is no lack of resources if you have an internet connection. I dont know what I should do after cs50 I've seen guides like OSSU, but Im not sure where to start I know little bit now should I start from the start? or from somewhere in middle? I'm probably gonna fuck it up and start some topics I am still not ready for and end up switching courses in the middle. That's just how it is.


    Felleisen et al. give a nod to this trend in their book How to Design Programs, when they say "Bad programming is easy. Idiots can learn it in 21 days, even if they are dummies."

    Is it wrong that I am a little offended by this? Especially since this is from an academic paper.

    4 votes
    1. pvik
      Link Parent
      I am not sure why you should be. What that statement is conveying to me is, learning to do something well takes time, and getting a shoddy job done is easy! As long as you're striving to learn and...

      Is it wrong that I am a little offended by this? Especially since this is from an academic paper.

      I am not sure why you should be.

      What that statement is conveying to me is, learning to do something well takes time, and getting a shoddy job done is easy!

      As long as you're striving to learn and put in the time, which you seem to be, you are only going to get better!

      I hate it sometimes ... . I enjoy it when ...

      I think that is totally normal. I write code for a living, and I work on open source projects and personal coding projects, and try to learn new languages and frameworks when I can; despite all that, I still have days at work where I hate what I am doing. A part of having a job is often time working on projects that don't interest you or are even down right boring!

      Programming is like Math, You get a problem and you find a solution with the concepts you know. The more concepts you know, the more problems you can solve; but, it also means you can solve a single problem in more than one way.

      If you are trying to solve for the area under a curve, you can use basic geometry and solve for certain conditions, it wouldn't be the most elegant solution. However, if you knew calculus, it would be a trivial matter.

      .. the feeling I get when learning new programming topics. I am not really excited about it, I dont hate it either

      This generally happens to me when I have not had a chance to apply the concepts, when my understanding is still skin-deep, or I have not had first-hand experience on how to leverage that concept. Personally, when I learn a new concept, and am able to use it to solve something and it aligns perfectly, I get an immense sense of satisfaction. It is like spending several hours over a dovetail joint and finally putting the two pieces together and they slide-in perfectly! [1] :)

      6 votes
    2. Omnicrola
      Link Parent
      For me, learning "programming" isn't as exciting as what I can do with it. Plumbers who enjoy their work aren't excited to learn how a new welding torch works, they're excited because of what they...

      I dont know how to explain in English the feeling I get when learning new programming topics. I am not really excited about it, I dont hate it either, If I had dropped programming completely because "I didn't enjoy it" I would've missed out on the things I enjoy about it.

      For me, learning "programming" isn't as exciting as what I can do with it. Plumbers who enjoy their work aren't excited to learn how a new welding torch works, they're excited because of what they can do with it.

      Learning programming is learning all the digital and mental tools, and how they interact. Then, when you know enough of them and you come across a problem you know what tools you need to deploy to solve that problem. And even if you don't know, you've learned other tools that help you figure out what tools you should use, or even how to make completely new tools!

      It's one of the reasons I enjoy software development as a career. As opposed to say, a plumber (whom I am very grateful for and respectful of). I can carry all of my tools inside my head, and I don't have to deal with other people's literal shit.

      3 votes
    3. JesusShuttlesworth
      (edited )
      Link Parent
      You're not wrong to be offended. It has been my experience that many computer science academics are very bad at grasping how difficult even basic programming can be.

      You're not wrong to be offended. It has been my experience that many computer science academics are very bad at grasping how difficult even basic programming can be.

      2 votes
  2. parsley
    Link
    The article sounds very reasonable. Start as small as possible and do stuff that is rewarding and useful. https://automatetheboringstuff.com/ is a great book for this as some of the examples /...

    The article sounds very reasonable. Start as small as possible and do stuff that is rewarding and useful.

    https://automatetheboringstuff.com/ is a great book for this as some of the examples / projects are very useful and actionable. Learning excel is another great way to learn to solve problems programatically. Bash scripting is kind of obtuse but you can get a lot of millage out of it just by learning if / while / pipes and test.

    Forget about project management, tooling, IDEs and such. They are great helpers but will get in the way if you dont have an actual need for them.

    2 votes