Live data from Hacker News

The Ugly Side of Learning to Code

crowdcademy.com

51–60 of 62 posts

Re: The Ugly Side of Learning to Code

#51

I took this entire year off to learn new things, like web programming, etc. I have around 20 years of programming experience, with a background in C/C++, so I had a very significant advantage over the writer of the article in terms of getting started in that direction. But I did come across similar things that the writer talked about. I first went about it by choosing Python/WebPy as my backend, and then switching to…

This may be a bit tangential, but may I ask what led you to decide to learn web programming? My background is in web programming, though I have much less programming experience overall than you (~5 years). For me, I feel like learning C/C++ would lead to increased understanding of general programming and better career opportunities. It seems to me that C/C++ (C++ in particular) is still relevant, and is becoming even more relevant.

And by learning C/C++, I mean really learning C/C++, not just relying the three classes that I took in college that used one of them. Lately I've been working on a C++ Windows TFTP server which has caused me to learn TFTP (very simple) and WinSock (complex so far). So I'm just curious what your thoughts might be.

Re: The Ugly Side of Learning to Code

#52
post #25

Earlier quoted context omitted.

The latter. I know a lot of great coders, and most of them set the bar for "decent" very high. By decent I mean that you could actually write code to solve most problems you come across. Is the code going to be less than optimal? Of course. Most of the time it's even going to be pretty ugly code (you should see my backend code for a case in point). I'm not being presumptuous, I just have lower standards than most of…

Not trying to be mean, but it doesn't work that way. "Decent" is relative to everybody else.

Which actually sets the bar pretty darned low, when you think about it. With only a little of the right sort of information, and a higher-than-normal give-a-shit factor, it would be easy to get beyond the level of the vast majority of 21-day wonders and cargo culters out there.

Re: The Ugly Side of Learning to Code

#53

I took this entire year off to learn new things, like web programming, etc. I have around 20 years of programming experience, with a background in C/C++, so I had a very significant advantage over the writer of the article in terms of getting started in that direction. But I did come across similar things that the writer talked about. I first went about it by choosing Python/WebPy as my backend, and then switching to…

> * One of the things I was working on was using Tesseract to do OCR on uploaded image files. After 3 weeks of trying to get it to work, I achieved about a 97% accuracy, but because of some underlying bugs that I didn't understand, it wasn't good enough.*

Ha, I've been working on this thing too, though I suspect for different use cases. I don't know if you were using this as a general example of how you managed to solve a problem...but this really isn't a "web programming" problem, in that it's a program that has many uses outside of a web server. In fact, it should be a standalone script that has no awareness of the web (unless it's doing something with a lot of moving parts, like recording results and doing machine learning).

In any case, the problem with people trying to learn web programming is that it encompasses many things...I'd argue that web programming doesn't really require learning HTML beyond the basic idea of HTML (and CSS)...and yet many beginner programmers spend a month or so thinking that programming consists of memorizing tags and CSS rules (nevermind cross-browser considerations)...which must be frustrating as hell.

Re: The Ugly Side of Learning to Code

#54

I took this entire year off to learn new things, like web programming, etc. I have around 20 years of programming experience, with a background in C/C++, so I had a very significant advantage over the writer of the article in terms of getting started in that direction. But I did come across similar things that the writer talked about. I first went about it by choosing Python/WebPy as my backend, and then switching to…

I've come to accept that I "start over" because I like to keep learning. I love- no I need - to fight new problems and learn new domains. From physics to teaching to sailing to jiu-jitsu to (web) programming to business (which I thought, arrogantly, was going to be rather simple) it's what my brain craves.

It's a curse in some ways. It seems to me that my ego is under far more attack than it should be at my age, as I am never the deep-knowledge expert about any topic. And I don't bluff very well.

On the other hand, I can't seem to have it any other way. It's probably a form of arrogance: "Of course I can do that, hand me that [chalk | gi | keyboard | main sheet | ...]

I imagine we are a lot alike.

Re: The Ugly Side of Learning to Code

#55
This article was good until it got ugly.

"As a result I've become more focused, more logical and smarter. But I've also become more detached from everyday life and less fun to hang out with. I'm not sure yet if the change is permanent, but I certainly hope that it can be undone :)"

I agree that coding is a constant learning process. But to suggest that this in some way makes you more detached from the world, and/or less fun to hang out with is ridiculously biased. I would like to believe the opposite is true. Programming and computer science in general have given me a sense of appreciation for the world and nature's algorithms that I could not have fathomed before. The social applications of strong logic and focus are infinite. Choosing to learn how to learn, or learning to program, does not mean you are choosing to become an introverted nerd or an extroverted socialite. I've learned nothing is really black and white (binary) like that.

As an example of how being more focused and logic can help, consider the scenario: You're talking with your girlfriend about who gets to be the designated driver one night, and all of a sudden the extra back rub you gave that one day three summers ago gets brought up as a bargaining chip in the argument. Reminding yourself and the other party to think logically and focus on the task at hand and not bring up things that are sure to spark dissension helps reduce these digressions and tangents during conversation. I think it is important that both parties in an argument at least can agree on what they're arguing about, and also at least on the scope of the argument. Now, I'm not just better at debate because of coding. My point here is that my life is enriched because can overlook the little things a lot more than I used to. I won't lecture my son for leaving his towel on the ground while it is wet when we're on vacation, because I have the focus to keep in mind what really matters: we're on vacation to relax and enjoy ourselves. This kind of easy-going behavior takes consideration and patience, given my short temper. Both consideration and patience are crucial to becoming at least a functioning programmer. It is even more than just patience and consideration though that are real life applications of traits strengthened through coding. When my friends and I are joking around, we tend to just morph and change jokes in a recursive manner to keep them interesting and to keep our lives exciting.

Being original is hard to do, and lots of original material is just old material tweaked a little bit. Our friend's name was Diego during the first iteration of his nick-name. Recursively and through several iterations, it changed to Diegs (Dee-eggs). Which changed to D-eggs. Which when he was very drunk became Grade D eggs. Which changed over time to just "Eggs." And you can use your imagination to guess how many different ways you can make eggs, and I can bet you almost all of them were used, and also used in conjunction ('fried, scrambled eggs') to address our friend, Diego.

Now, you sir, should not be convinced that learning to program makes you less attached to the world, and less fun to hang out with. On the contrary, you should embrace your powerful logic and focus and use it to enhance your life experiences and your disposition rather than to detract from them.

Re: The Ugly Side of Learning to Code

#57
This article was pretty interesting to read, but unfortunately drew one incorrect conclusion...

"I guess my point is, that if you want to become a programmer, you have to be comfortable with having to learn new things constantly for the rest of your life."

This conclusion implies the rate of learning experienced in those 6 months would be the same forever, and I think that's not entirely realistic. While technology is rapidly changing, it's FAR more sustainable to maintain knowledge across a wide variety of areas than continue at the pace and breadth the OP experienced.

Also, it depends on your field/focus. If you're talking about web programming, sure. If you're a C++ app programmer, chances are your world isn't changing too dramatically each year.

Re: The Ugly Side of Learning to Code

#58
post #51

I took this entire year off to learn new things, like web programming, etc. I have around 20 years of programming experience, with a background in C/C++, so I had a very significant advantage over the writer of the article in terms of getting started in that direction. But I did come across similar things that the writer talked about. I first went about it by choosing Python/WebPy as my backend, and then switching to…

This may be a bit tangential, but may I ask what led you to decide to learn web programming? My background is in web programming, though I have much less programming experience overall than you (~5 years). For me, I feel like learning C/C++ would lead to increased understanding of general programming and better career opportunities. It seems to me that C/C++ (C++ in particular) is still relevant, and is becoming even…

To be honest, I first started out trying to learn iPhone programming, simply out of interest. Unfortunately I got caught in between the transition between Xcode 3 and Xcode 4, where the interfaces and some of the terminology changed and the books were all based on Xcode 3. It got frustrating and tedious trying to convert concepts from Xcode 3 to 4 and back, so I decided to jump to web programming, since I envisioned the back-end of many iPhone apps would be web-based, with the goal of returning back to iPhone programming. During that time, I made some pretty good progress with the web stuff, and it was pretty enjoyable so I just stuck with it. Pretty soon, I'll get back to learning iPhone programming.

Personally I think C/C++ is still relevant, and it's my language of choice, but I'm not close-minded about it. For example, in developing my OCR functionality, I discovered how wonderful Python was, because it was a sane programming language, and allowed for much quicker development and progress than C++. I'm now a Python convert, although I still have many more miles to travel before I can become a competent Python programmer. In addition, Javascript is a lot more powerful that I imagined, and it looks like a lot of people are turning Javascript into something a lot more powerful, ex. Node.js. If I had to put my money behind the languages that might really blow up in the near future, it's Javascript and Python.

As to the career opportunities of C++, I can't really speak for that because trends change quickly. The key is to be flexible and open-minded, and not get stuck in a particular pigeonhole otherwise you'll find yourself like COBOL programmers in the late 90s. You will definitely learn a lot by going the C++ route, and being "closer to the metal" as some people say, you can and will learn a lot of different concepts that aren't available to many other languages, like memory-management, etc. It might make it easier to take up other languages in the future, as well, so it's not something I would discourage anyone from learning.

Re: The Ugly Side of Learning to Code

#59
post #53

I took this entire year off to learn new things, like web programming, etc. I have around 20 years of programming experience, with a background in C/C++, so I had a very significant advantage over the writer of the article in terms of getting started in that direction. But I did come across similar things that the writer talked about. I first went about it by choosing Python/WebPy as my backend, and then switching to…

> * One of the things I was working on was using Tesseract to do OCR on uploaded image files. After 3 weeks of trying to get it to work, I achieved about a 97% accuracy, but because of some underlying bugs that I didn't understand, it wasn't good enough.* Ha, I've been working on this thing too, though I suspect for different use cases. I don't know if you were using this as a general example of how you managed to so…

It is a Python script I execute from a PHP file, so it doesn't have any knowledge except for the files that I am trying to scan.

I google just about any HTML issue I have, so I don't spend too much time trying to learn the intricacies of it. If anything, trying to understand why CSS was behaving as it was, was what got me closest to smashing my keyboard more than a handful of times. Stupid Wordpress.

But I don't think it's necessarily a waste of time for absolute beginners to learn and memorize HTML as their first exposure to "programming". Having a fundamental understanding of how making changes to a script or file affects the output to a web browser is something that I imagine most non-programmers aren't familiar with, so having a firm grasp of this concept will probably help them digest more advanced concepts later on. Being able to whip up a web page is probably one of the first things I would teach beginners if I ever taught a course on programming.

Re: The Ugly Side of Learning to Code

#60
post #54

I took this entire year off to learn new things, like web programming, etc. I have around 20 years of programming experience, with a background in C/C++, so I had a very significant advantage over the writer of the article in terms of getting started in that direction. But I did come across similar things that the writer talked about. I first went about it by choosing Python/WebPy as my backend, and then switching to…

I've come to accept that I "start over" because I like to keep learning. I love- no I need - to fight new problems and learn new domains. From physics to teaching to sailing to jiu-jitsu to (web) programming to business (which I thought, arrogantly, was going to be rather simple) it's what my brain craves. It's a curse in some ways. It seems to me that my ego is under far more attack than it should be at my age, as I…

When it comes to learning new things, I do have that belief that I can do whatever I need to get things done. I've spent the greater part of my post-college life hustling to learn new things, so throwing a couple of more concepts on the pile likely won't be too different from what I've already seen.

Physically though, my back tells me otherwise... and usually wins that argument :)

Post reply on HN