Live data from Hacker News

The Ugly Side of Learning to Code

crowdcademy.com

41–50 of 62 posts

Re: The Ugly Side of Learning to Code

#41
post #35
post #33

Earlier quoted context omitted.

What math do you think one needs to learn to be a programmer? To be a good programmer, you need to think in a somewhat mathematical way at times, but you almost never actually need to know math beyond the elementary school or early high school level. There's was an interesting essay in the Notices of the AMS a couple years ago called "What is Mathematics For?" that explored the widespread belief that high school math…

> you need to think in a somewhat mathematical way at times This is the essence of mathematics; all else is commentary (er, details).

That may be, but it is not the essence of mathematics classes, in which a good deal of rote memorization and continuous practice of specific systems is required to pass.

Re: The Ugly Side of Learning to Code

#42
post #33

"Coding uses a lot of thinking patterns that I hadn't really used since my math and statistics classes in college, and even back then not in this intensity" And "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." So many conversations around "but I want to be a programmer, do I really need to learn math? Reall…

What math do you think one needs to learn to be a programmer? To be a good programmer, you need to think in a somewhat mathematical way at times, but you almost never actually need to know math beyond the elementary school or early high school level. There's was an interesting essay in the Notices of the AMS a couple years ago called "What is Mathematics For?" that explored the widespread belief that high school math…

That really depends on what type of programming you're doing and the platform you're developing on top of. If you're doing a crud app in rails, I'd agree with you math itself is pretty much useless after knowing the core operations (add, subtract, etc...). But the moment you're dealing with lower lever programing, creating or implementing algorithms, managing memory, etc... understanding more advanced mathematical concepts starts to shine as a necessity more than an option plus. Actually, if you're developing a rails application for the financial or analytics sector you're most definitely benefit from knowing advanced math and having done a course or two on statistics.

Let's be honest, if you're creating an application to improve or help accounting of a business, you need to know accounting. If you're creating an application for banking and finances companies, you need to know financial math. If you want to make an app that converts a business' Excel data into complex charts you need to at least understand statistics and more complex math than the 15 year old learns in school. Don't even get me started on a program that draws graphics programmatically and the need for some trigonometry in there.

Lastly, though I do a lot of backend and sys admin stuff because of the nature of my speciality at work, I spend half my time doing frontend programming and css (thank god for sass), and if I didn't have knowledge of algebra and trig I would take at least half as much time to do what I do. I know (and work with) a bunch of great programmers, but I'm still the guy people go to at work for mathematical advise when al algorithm is not behaving as it should and it mathematically complex.

I'm not trying to argue with your point though, most of the time you don't need those advanced mathematical concepts, and the important part of learning math is the reasoning aspect. i completely agree with that. Nevertheless I've found that advanced concepts can speed development and in some cases having that knowledge can make or break a project.

Re: The Ugly Side of Learning to Code

#43
post #36
post #33

Earlier quoted context omitted.

What math do you think one needs to learn to be a programmer? To be a good programmer, you need to think in a somewhat mathematical way at times, but you almost never actually need to know math beyond the elementary school or early high school level. There's was an interesting essay in the Notices of the AMS a couple years ago called "What is Mathematics For?" that explored the widespread belief that high school math…

I had a teacher in college that was discussing the math requirement for the programming classes he taught. I was at this point past the classes being discussed. His reasoning for wanting, I think Algebra 1, for Intro to Programming (C++ at the time), was not because the actual math was used in the class. He wanted, as you said, to ensure the students were capable of mathematical reasoning.

I think it would be interesting to see the same concept applied in the reverse; i.e. have a programming requirement for math classes.

At my university, there's always an embarrassing number of Algebra 1 sections under the math dept every semester (I'd even say that just the Algebra 1 & 2 offerings make up about 30-40% of their total sessions some semesters). And if I hadn't seen some of my friends tutoring student's in those classes, I wouldn't have really believed there was a necessity for so many sections, but now I do.

People just seem to have a really hard time extracting the concept of 'thinking mathematically', from the act of doing math itself, and I'd say it's because it is so abstract; once you go past basic money/counting scenarios, the real life analogs start to break down for most people, and all they see is numbers, symbols, and mysterious rules.

Programming on the other hand, while still pretty tough to grasp if you're new to that way of thinking, seems like it might be a gentler intro to me. Not only does it tend to have a culture of more intuitive naming schemes than math, and have a faster feedback mechanism (i.e. a REPL/compiler checks your code as opposed to a math teacher), it also makes modeling more real world systems really easy early on (so people won't feel bounded to just money or whatever as their anchor back to reality), especially if the course goes into OOP at all before it's over.

Re: The Ugly Side of Learning to Code

#44
post #33

"Coding uses a lot of thinking patterns that I hadn't really used since my math and statistics classes in college, and even back then not in this intensity" And "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." So many conversations around "but I want to be a programmer, do I really need to learn math? Reall…

What math do you think one needs to learn to be a programmer? To be a good programmer, you need to think in a somewhat mathematical way at times, but you almost never actually need to know math beyond the elementary school or early high school level. There's was an interesting essay in the Notices of the AMS a couple years ago called "What is Mathematics For?" that explored the widespread belief that high school math…

The subject of math reminds me of a recent encounter with a client. We had a business requirement meeting. It's not software development related, not even technically related. It's purely for me to understand their business, processes, and business rules.

One of the important business rules came up in discussion and they were arguing among themselves what's right or just trying to convince each other what the complicate rule really is. I was like, it's just a simple set of formulas if the problem was decomposed into smaller steps. After I told them about it, they were like, oh yeah, it's that simple.

The resulting math were very simple but the process to derive those was greatly benefited from higher level math training.

Re: The Ugly Side of Learning to Code

#45

"Coding uses a lot of thinking patterns that I hadn't really used since my math and statistics classes in college, and even back then not in this intensity" And "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." So many conversations around "but I want to be a programmer, do I really need to learn math? Reall…

I am going to answer to my self as a way to answer all the comments at the same time.

What I am rescuing from the article is the ability to learn beyond looking for what is the minimum that needs to be learned; the attitude of "I need to learn this, so I'll stretch my self" as opposed to "I don't need to learn this!, I can learn the least possible!, it is only useful up to this point! I have never used beyond the basics!". If this is your attitude, then good for you, but as an employer, I am not going to choose the employee that it is just looking for the minimum to learn to get by. And that attitude is the difference between a code monkey and professionalism.

This is disturbing to me because today the resistance is towards "math", tomorrow will be towards "C#" ("why do I have to learn that if I can easily scaffold in ruby?" multiple technical reasons, but the one that hit the most for programmer that are not living in their mom's basements is: Because I sign your paycheck), and the day after it would be something else. In general it reflects a problem with learning.

My comment does not goes towards math exclusively, but towards the ability to enjoy learning, and that is a color of the character.

The comments of I don't need to learn this or that (math, or whatever else) tells me more about who you are than engaging in what is the level of math that you need to learn.

Of course some egos will feel offended and call me and my high horse... then again...

Re: The Ugly Side of Learning to Code

#46
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 Wordpress as a front end for my website because I got tired of having to do every single little thing, and subsequently learning PHP. Then I started focusing on Javascript, jQuery and AJAX. My website is hosted on EC2, so I needed to understand how that all worked (not nearly as difficult). Then I tried learning how to make a Facebook app, so that ended up taking a few weeks, since the documentation is amongst the worst I've ever encountered in my career. I needed to figure out how nginx worked in order to get certain things working, and I also needed to learn the basics of Photoshop and Illustrator and basic graphics techniques. Luckily I have several friends in design that helped me get over this hump.

These last 8 months haven't felt like an exercise in learning how to program more so than 8 months of constant problem solving. Sure, I learned a bunch of new technologies, but my main goal was to get up some web-based projects, and every step of the way I encountered problem after problem, and my job was to solve these problems by any means necessary. Solving these problems entailed me having to learn Javascript, jQuery, Photoshop, Illustrator, etc. I didn't relish the idea of having to keep learning new stuff, but I did it because I knew it was the fastest way to solving my problems. I can't say I'm an expert in any of the technologies above (I constantly get Javascript and Python syntax mixed up in my head, and I google 80% of what I need), but I can solve just about any problem that I've come across.

I think this is the key to bootstrap yourself and doing anything related to technology, be it programming, sysdmining, etc. It's not so much the love of constant learning, but rather not giving up in the face of constant roadblocks, and constantly attack problems over and over and over and over again until you solve them. Don't get me wrong, I've very much enjoyed learning these technologies, especially Javascript which is a wonderful language (despite its flaws), and so much more powerful that I ever thought. But I know I've only started the scratch the surface.

As well, another big factor is keeping a high level of emotional energy in order to keep pursuing your goals. 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. I was frustrated and disappointed and finally gave up on it, and moved onto my next project, which I finished in about 2-3 weeks. But after that, with renewed energy, I decided to give it one more go at my problem, and spent another week at it. This time I used OpenCV in conjunction with Tesseract, and achieved almost a 100% accuracy, but more importantly, I figured out a way to get around the bug that had been dogging me on my first attempt.

I'm at the point now where I'm not a "great" web programmer, but I definitely can take a design from one of my friends, and implement it, pretty much to spec. I'm not fast, and I'm not creative, but I'm confident I can solve just about any problem I need to in order to finish my task.

Re: The Ugly Side of Learning to Code

#47
post #2

"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 :)" 6 months away from programming, and you'll be fine :)

Life compartmentalization and better living through chemistry has always worked for me.

Re: The Ugly Side of Learning to Code

#48
"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."

I think that applies to anything, if you want to have any measure of success, especially these days.

"So the lesson I've learned is that - even though I like coding - I enjoy building products even more."

Yeah, never say that to a developer.

Re: The Ugly Side of Learning to Code

#49
For some careers, particularly technical ones, "learning for life" / autodidactism are no longer optional. You're required to keep up with all the latest research, trends, tools, and a variety of other things that make you current. Sure, having a solid foundation helps, but is no longer enough (I'd argue it hasn't been enough for a long time.) You're required to learn every day to keep up.

What some here (who I'd venture are more likely than the median person to be autodidacts) may find surprising is that many people find the idea that you have to "keep learning stuff after college" distasteful, even abhorrent. The "go to college so you can get some job and then do what you 'REALLY' want with your life" thing is vanishing quickly, and the level of competitiveness in society (well, in America at least) is increasing.

The economic disparities this creates have been discussed at length, but the social ones less so. The fact that some careers require non-stop learning for these people means that in some ways school never ends, and the post-college, "no more competition" sigh of relief never comes. To me this is neither good nor bad, just inevitable at this point, but I think understanding the perspective of those who can not or will not follow the self-learning-for-life path is important. If nothing else, people here will know the reason that they are so grumpy.

Re: The Ugly Side of Learning to Code

#50
post #33

"Coding uses a lot of thinking patterns that I hadn't really used since my math and statistics classes in college, and even back then not in this intensity" And "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." So many conversations around "but I want to be a programmer, do I really need to learn math? Reall…

What math do you think one needs to learn to be a programmer? To be a good programmer, you need to think in a somewhat mathematical way at times, but you almost never actually need to know math beyond the elementary school or early high school level. There's was an interesting essay in the Notices of the AMS a couple years ago called "What is Mathematics For?" that explored the widespread belief that high school math…

[deleted]
Post reply on HN