Live data from Hacker News

Your Progress As A Programmer Is All Up To You

thecodist.com

41–50 of 69 posts

Re: Your Progress As A Programmer Is All Up To You

#41
post #14
post #11

Earlier quoted context omitted.

I think what he's trying to get at is to stay on top of large industry changes in general. Even though there are many frameworks and libraries being created everyday, it's still reasonable to keep informed about the ones that have a substantial amount of traction.

What kind of large industry changes are we talking about?

I don't know if I'd call them "large industry changes," simply because it begs the question of how one defines "large" and "industry." But I know personally I'm facing some frustration as a web developer in my mid-40s due to how much the concept of web developer has become an accelerating target, not merely a moving one. It's only been over the last couple of years that I've started being genuinely concerned that I'm falling behind, but "we're looking for someone who knows Python and Ruby and Coffeescript and AngularJS and MySQL and MongoDB and has previous experience scaling web sites to ten million hits a day" is becoming de rigueur in Silicon Valley.

I don't consider myself too old to learn new things, but there are certain things that are difficult or even impossible to learn noodling around at home -- and even in this Show Me Your Github era, professional experience counts. I'm not sure I'm ever going to be given the chance to learn how to scale web sites to ten million hits a day. I agree with The Codist that as programmers we really are responsible for our own ongoing education, but I'm not convinced that's always sufficient.

Re: Your Progress As A Programmer Is All Up To You

#42
post #22

I have been writing and rewriting a post for the better part of a year on this same thing. I think I've finally accepted that a majority of programmers actually are not interested in learning new things. I got into software because there was so much to learn and explore, so this realization still baffles me. Why on earth would someone want to do this job and not want to learn new things? It's like a baseball player w…

No, they are interested, learning is fun for them too. But not everyone is interested in learning the same things you are. For me, for example, there is absolutely nothing more boring, than some new fancy framework, API or a language. I am, however, very excited to try things that might reduce amount of bugs and potential security issues in my code, make it cheaper to run, cheaper to support.

there is absolutely nothing more boring, than some new fancy framework, API or a language

Hear, hear. There must be 100+ "frameworks" out there, all for the task of rendering a web page. If you learnt them all, you would be stupider than when you started. Pick a handful of technologies - ones that will last - and get deep into them. Step off the crazy treadmill and go for quality, not quantity.

If you had gotten into a "full stack" (lol) of Unix, Oracle, C++ in 1994, you would still be very, very employable today as long as you remained more or less current with them, and you'll still be in 2024. Whereas if you learn "frameworks", you'll be starting again from scratch every year or two.

Re: Your Progress As A Programmer Is All Up To You

#43
post #9

I think it's possible to agree with both this post and with the other programmer he's railing against. Yep, I know that if I don't take care of my own training, it's just not going to happen, most companies are not so altruistic that they'll hand me everything on a silver platter. But at the same time, a company that never hires people unless they already have the exact skillset they're looking for, a company that fi…

You hit the nail on the head. It's the programmer's responsibility to stay relevant, not some company's. But the best companies will take an active role in ensuring their programmers stay up to date (since it's in the company's best interest, too).

I've been just dumb lucky in that the companies I've worked for have been very supportive of individual engineers’ efforts to learn new things. Whether through funding conference attendance and/or travel, or by simply giving employees time during work hours to learn on their own. But the biggest gift my past and present coworkers have given me was demonstrating that learning outside of the job is an essential component of doing great work.

It wasn't until my first few times sitting in on hiring discussions that I encountered professional engineers who didn't take an outside interest in expanding their toolset.

There is absolutely nothing wrong with them. They are fantastic folks who are very good at their chosen profession. And for the majority of professions (I only have anecdotal knowledge of this, but I would love to hear examples from other fields) that is enough to ensure stable employment. But I can't imagine the fear, uncertainty, and doubt that accompanies company layoffs and downsizing when you haven't played outside of your comfort zone in a while.

This is just a long-winded way of saying, “great summation, SheepSlapper!”

Re: Your Progress As A Programmer Is All Up To You

#44

I have been writing and rewriting a post for the better part of a year on this same thing. I think I've finally accepted that a majority of programmers actually are not interested in learning new things. I got into software because there was so much to learn and explore, so this realization still baffles me. Why on earth would someone want to do this job and not want to learn new things? It's like a baseball player w…

Technical decisions should not be made on "which technology sounds cool on CV" basis.

Unless there is strong reason, codebase should be in one language. Having it in multiple languages makes learning curve for newcommers unnecessary steep, especially if the company is willing to hire juniors. It also makes maintenance more difficult and expensive. Too many languages will also force your people to have very shallow knowledge.

We are going to do this one module in python should be done either cause you consider to move to python altogether or because the usual language is really bad fit. "Someone wants to learn it" is both bad reason and unprofessional.

Re: Your Progress As A Programmer Is All Up To You

#45
post #44

I have been writing and rewriting a post for the better part of a year on this same thing. I think I've finally accepted that a majority of programmers actually are not interested in learning new things. I got into software because there was so much to learn and explore, so this realization still baffles me. Why on earth would someone want to do this job and not want to learn new things? It's like a baseball player w…

Technical decisions should not be made on "which technology sounds cool on CV" basis. Unless there is strong reason, codebase should be in one language. Having it in multiple languages makes learning curve for newcommers unnecessary steep, especially if the company is willing to hire juniors. It also makes maintenance more difficult and expensive. Too many languages will also force your people to have very shallow kn…

> Too many languages will also force your people to have very shallow knowledge.

I spent the last 10 years learning programming languages and PLT; it's a hobby of mine and I put quite a lot of effort behind it. While I certainly forget some things I learned (I regret not using C on a daily basis and not keeping with C++ advancements), at any given time during those past ten years I was fluent in at least 3-4 languages. Without needing a refresher, right now I can speak and I really know in depth the following languages: JavaScript, OCaml, Erlang, Racket, Python, LiveScript and Pharo Smalltalk. I have about 20 other languages I could become similarly fluent in with a week's effort. It's not shallow knowledge, it's just 10 years of work. There is really nothing to force you not to have deep understanding of many different languages and technologies.

On the professional side - I have quite big system under my care which is mixed Python, JavaScript, Ruby and Erlang, not to mention bits of C, shell scripts and Makefiles and two compile-to-JS languages, some compile-to-CSS and compile-to-HTML languages. The system works - and believe it or not, working on it is a pleasure and using the right tool for the job really feels liberating. It let's me move twice as quickly with twice as good results than I'd get trying to do for example fault tolerant, concurrent backend service in Python instead of Erlang (or quick data mining script in Erlang instead of Python for that matter).

I believe using the right tool for the job is the very definition of professional. Of course, the learning curve is probably steeper for newcomers, but for professionals above a certain level language specifics are rather easy to grok and becoming fluent in a language takes a few weeks tops. Besides, it's not like every team member is required to know every technology used in a project - there's a tech lead for this and I wouldn't want to work with one who can't easily convert iterative algorithms to tail-recursive ones and switch from algol-like to prolog-like to python(-like) syntax on the fly.

Anyway, I know what I know and I know what I do and you're basically saying that these skills are irrelevant and using them would be unprofessional. In short, what I'm saying in response is: bullshit.

Re: Your Progress As A Programmer Is All Up To You

#46
post #28

Earlier quoted context omitted.

So long as you don't have to learn a language, API, or framework to do it... I'm not sure what things are left you could do differently? Your list excludes all technology-related changes, so the rest becomes meta-activities: pair programming, documentation, planning, a good nights sleep, etc. Those are excellent, but I'm curious why are you willing to change those other areas but are resistant to technological ones?…

> I'm not sure what things are left you > could do differently? There are so many thing that are left - one cannot do them in a lifetime! Analyze as much bugs as you can, invent your own language that prevents them from happening, write your own compiler for this language, make it fast, with better memory management, not some stop-the-world GC, but with something, that honors low-latency and so on. EDIT: As RogerL is…

So clearly you are not the class of person I have ever dealt with in the past. It would be an incredible breath of fresh air to work with someone who cares enough about their work to write their own compiler for it.

Right now I'm working through SICP, having just finished PLAI, do you have any suggestions for a book on compilers I could do next? I was recently steered away from the dragon book as it's "missing a lot of recent compiler research", but that person had no good alternative.

I think there is definitely three main groups of software people: those that wire together languages and frameworks, those that write languages and frameworks, and those that use a tiny subset of languages to do research. My problem is I think I've been heading down the path of learning that leads more to the second, and you sound like someone who manages to do a job similar to mine, but by being good at that second far more interesting path. I'd be really interested to hear any advice you have. Do you basically have to just work alone?

Re: Your Progress As A Programmer Is All Up To You

#47

Earlier quoted context omitted.

So long as you don't have to learn a language, API, or framework to do it... I'm not sure what things are left you could do differently? Your list excludes all technology-related changes, so the rest becomes meta-activities: pair programming, documentation, planning, a good nights sleep, etc. Those are excellent, but I'm curious why are you willing to change those other areas but are resistant to technological ones?…

There are a lot more interesting things in CS than 100 different mvc frameworks and 20 upstart languages that do exactly what LISP did in 1960.

Oh sure, right now I've been deep into Scheme as I just finished PLAI and am halfway through SICP. I'm not chasing every new Perl derivative every six months, but I'm mostly stuck in the day job using C#. It feels constraining to be learning all this awesome about languages and not get to use most of it, hence the desire to sometimes try other languages at work.

What sort of things have you been learning that you would recommend that are off the beaten path of just another mvc framework? I'm thinking of learning about compilers next, but I'd like a book to work through rather than just "the internet". Also I'm trying to catch the type safety bug by working through Real World Haskell, I'm open to other suggestions for that too.

Re: Your Progress As A Programmer Is All Up To You

#48
post #22

Earlier quoted context omitted.

No, they are interested, learning is fun for them too. But not everyone is interested in learning the same things you are. For me, for example, there is absolutely nothing more boring, than some new fancy framework, API or a language. I am, however, very excited to try things that might reduce amount of bugs and potential security issues in my code, make it cheaper to run, cheaper to support.

If your main concern is reducing bugs and security issues, then you really should look into modern typed languages like Rust.

I did, doesn't seem to be particularly focused on neither bugs nor security.

Re: Your Progress As A Programmer Is All Up To You

#49

Interesting article, sounds like the author has really taken charge of their career and managed to do well. Now, what about an alternative world where he did not "get oo" or perhaps a lifestyle where he had children and no time at work to learn. Or one of these newer not quite as successful software companies which has no money and no extra time. Keeping up with new tech requires time, and money. Start ups provide ne…

Though I have no children, I do have a wife I want to spend my evenings with, so I organized my professional life such that I could take a train into work 25 minutes each way. That means I get almost an hour of uninterrupted study time to advance my skills. It has been fantastic. When I get home, it's us time all night. I've been doing this for over a year, and I've seen a profound difference in my skills.

Re: Your Progress As A Programmer Is All Up To You

#50
post #48

Earlier quoted context omitted.

If your main concern is reducing bugs and security issues, then you really should look into modern typed languages like Rust.

I did, doesn't seem to be particularly focused on neither bugs nor security.

Wow, we have a very different reading of Rust.

Safe concurrency and memory management doesn't lead to reduced bugs? Eliminating unsafe memory access doesn't lead to increased security?

Post reply on HN