Live data from Hacker News

Ask HN: For those programming 10+ years, what do you wish you knew 4 years in?

news.ycombinator.com

491–500 of 538 posts

Re: Ask HN: For those programming 10+ years, what do you wish you knew 4 years in?

#491
post #56

There is no future in software development as a job. Move to a management position quickly, network, make friends with decision makers, don't spend too much time on crafting your skills, your reward for perfection will be more insane work and crazy interviews where one part not 100% done kicks you out. Work on your appearance, kiss up, lift, dress properly, use anti-aging cosmetics, make cool looking hairstyle, wear…

This is a great post. Read it and do the opposite of everything it says.

Re: Ask HN: For those programming 10+ years, what do you wish you knew 4 years in?

#492
post #305

Earlier quoted context omitted.

> There is no future in software development as a job. Wrong. I've been at it for 30 years. It's not all roses, but it's still pretty good. The key is to be doing something where 30 years of experience is worth more than 5 years of experience. I'm in embedded systems, and the experience matters there (to enough people, even if not to everyone). Web programming? I'm less convinced that it matters there. > Move to a ma…

At some point your brain stops working, you won't be able to compete with fresh graduates, the capability:wage ratio will be very low in your case; you'd get a prompt boot, never to be able to be employed on the same level again. Experience in our field has negative value and unless you get another M.S./PhD every 10 years to demonstrate you are still on top, you are toast.

> At some point your brain stops working

Yes, when you die.

Children are much better at learning new spoken languages, but by your logic no adult should even bother trying to learn a new spoken language.

Re: Ask HN: For those programming 10+ years, what do you wish you knew 4 years in?

#493

Earlier quoted context omitted.

Okay, so as someone who is less than 4 years into programming what are the key common shortcuts(not they're actual hotkeys just which ones are used the most) to learn for semi-advanced text editors and IDE's? EDIT: thanks for the advice guys, I use Jet Brains range of IDE's for school cause free licensing and I'm using VS for my summer internship. I'll look into emacs though, thanks for the suggestion!

I've got a few visual studio tips here: https://jackmott.github.io/programming/tools/editor/ide/visu... and here: https://jackmott.github.io/programming/tools/editor/ide/visu... I'm not familiar with jetbrains but if you can probably find equivalents for all those VS tips in jetbrains. are you one of my interns? haha. It can be worthwhile to at least partially master emacs/vim as well, since these exist on all platfo…

Thanks for the links! Gunna have to check those out today. I've heard that many of the hot keys in VS are very similar to the ones used by JetBrains.

Re: Ask HN: For those programming 10+ years, what do you wish you knew 4 years in?

#494
post #233

Earlier quoted context omitted.

This is why I always ask what is the business value of doing cool thing X on a project. Using your words if "using a newer JS framework, a slightly tighter Java loop or the latest cool language." doesn't improve the business value of what the customer is getting out of the product, it gets a very big NO. I became very much against "cv building driven programming".

Along those lines I'm always surprised at how many SUCCESSFUL tech companies even today are built with PHP. Tech stack is often not the driver of success or failure in a company.

Besides, PHP is a mature and very well working technology. Not shiny, but otherwise very good.

Re: Ask HN: For those programming 10+ years, what do you wish you knew 4 years in?

#495
post #475
post #473

Earlier quoted context omitted.

Yes I think that experience is common. Everyone uses shell, but many do it reluctantly, because it looks old and gross. My first experience with it was realizing that 'x=1' works but 'x = 1' does not. And also realizing that 'x=1' creates a GLOBAL variable. Who would design such a crappy language? Then you get past the surface ugliness and discover its power. I agree that shell SHOULD be a first programming language.…

> There are too many sharp edges. I wasn't thinking they should learn programming as such. More that they should learn some various unix tools (grep/sed/awk/etc), learn how to combine them with pipes and learn how they can save the workflows in a shell script. Maybe some functions and variables but not if statements or loops. Maybe even do that in awk instead of bash. I really love the blog by the way, any tips for p…

Yeah I think learning pattern matching like regexps before learning control flow and state with variables could be a good thing.

I can imagine a curriculum where you go from HTML (data) -> regex (patterns) -> full source code. One thing I noticed is that a lot of people who want to learn to program aren't that proficient at using a text editor and generally using a computer, and doing HTML first will solve that.

But I also think that regexes have the obvious problem of syntax too. I have taught regexes along with Python to non-programmers, and it works OK, but the material didn't demand too much. I think it was basically \d+ and one or two other constructs.

FWIW one of my goals is to combine bash, awk, and make, although this is sort of far off: http://www.oilshell.org/blog/2016/11/14.html

Awk is an OK first language but honestly it's worse than JavaScript, because you can't even return an array from a function. Also, functions can't be used as parameters or return values to other functions.

Although I suppose it has the advantage of being very stable and immediate, and not requiring NPM and what not. However JavaScript has the advantage of integrating with the web.

---

As far as the blog, it's a bunch of custom shell, Python, and CSS that I cobbled together over the years, and then wrapped in a Makefile. I use markdown.pl but I'm thinking of switching to CommonMark. I've made several static websites before so I copied the best bits, with not too much cruft.

It also evolved over the course of the blog. It looks really simple but there are some details that I spent awhile on.

(And honestly I wish Oil existed so I could write it all in one language, not shell + make + Python!)

Re: Ask HN: For those programming 10+ years, what do you wish you knew 4 years in?

#496
post #25

* Functional is generally better but don't be crazy about it. * Have tests but don't be crazy about it. * Keep your development process as streamlined as possible. * New languages generally aren't as hard as you might think and they might be the right tool. * The right tool for the right job can make a huge difference.

I would have upvoted you if it wasn't for your last sentence which is the most hyped in our industry. WRT this sometime ago I wrote this in a S.E. answer: I'm a hater of the sentence "use the right tool for the job". Nowadays, any language can do pretty much anything you want to do with it (except if the language has recently been created and is still in the early stages, e.g.: Elm?). So then IMO these days what you…

Cool :)

I use Python for anything related to text processing or webscraping. I use Haxe for when I'm doing cross platform game programming. I use React for web UI / front end work. Erlang for distributed stuff. In each of those cases I've tried other tools and the ones I prefer now seem much more effective ...

I've never done anything in F#

Re: Ask HN: For those programming 10+ years, what do you wish you knew 4 years in?

#497
post #478

Earlier quoted context omitted.

It's like LEGO - you have some basic building blocks and you can compose some cool things with them. Your first LEGO set has only 3 different blocks, but nevertheless you make some nice tools just with them. Then some smart person adds another 2 blocks later. Then another 3 blocks. Then an electric engine. Suddenly your scope becomes much bigger. Then somebody makes mini LEGO to mask rough edges, making your creation…

How is that different from say Unreal Engine, where you can already make a top-notch (graphics wise etc.) 3D game without any programming - by using their blueprint model? The point it, it still requires someone expressing the desired gameplay mechanics in terms of the blueprints ("lego blocks") -it's not that different from programming, except maybe looks more friendly than code. It's a looong way from tools like th…

Yes, you are getting it ;-) So currently Unreal allows you pretty fast development using some blueprints. Now what is missing is some AI tool that understands a bit of context. Imagine you want to animate some character there. You can stand in front of a webcam and tell UE that the character should move like this, and perform the move. Then you review it, you see you really don't look nice on video, but the basics of movement are there. So you say "do it like this, but more artistic", and your AI will try to figure out what that does mean from some pre-trained "artistic" movements, and you can pick from the results; then you'd like to beautify it as you are out of shape and generally don't look like a model, so AI takes some pre-trained model info and launches a GAN to construct 3D body that looks like a "model" but follows your movements. Treat it as an advanced "pocket knife" that can automate some higher cognitive functions in the sense like "computer is a bicycle for our mind", and current AI allows you to do more complex tasks automatically. This will get better presumably, so each new iteration can do better than before.

Re: Ask HN: For those programming 10+ years, what do you wish you knew 4 years in?

#498

Learn how to evaluate trade-offs. Not everything is black and white. Given two alternatives, both of which have advantages and flaws, learn how to decide which one is better (and why). Learn a sense of... I want to say "taste", but it's more concrete than that. Learn what the bad ideas are, and why they're bad. Learn a sense of "that doesn't feel right" that's technical, not just aesthetic. Learn what it's like to ma…

...and appropriate level of detail doesn't mean every detail should be documented. Sometimes it's better not to document some technical details (which will change anyway, and docs will be obsolete soon).

Re: Ask HN: For those programming 10+ years, what do you wish you knew 4 years in?

#499
post #404

Earlier quoted context omitted.

The thing is there was enormous progress in natural language processing lately; it's now conceivable to enable some simpler forms of programming using your voice commands only (imagine webapp or mobile app builder controlled by voice) that would satisfy needs of 95% of population, putting many companies out of business. Even at top 5 companies there is a panic about it and many managers will tell you in private they…

Consumer demand is endless. The more they have, the more they want. Machine Learning, or whatever it turns into, will just expand the opportunities and the requirements.

...but also enable laymen to do many things all by themselves instead of hiring another person to do it for them. If done right, ML will increase power of everyone, if not done right, only of a few.

Currently the "art of programming" is a gift to a few. But if you look around you, almost everything people do is some sort of an algorithm, i.e. sequence of steps affected by inputs. ML will allow grasping some very difficult concepts which our brains can do naturally and help automate them, making those algorithms easier.

Re: Ask HN: For those programming 10+ years, what do you wish you knew 4 years in?

#500
post #497

Earlier quoted context omitted.

How is that different from say Unreal Engine, where you can already make a top-notch (graphics wise etc.) 3D game without any programming - by using their blueprint model? The point it, it still requires someone expressing the desired gameplay mechanics in terms of the blueprints ("lego blocks") -it's not that different from programming, except maybe looks more friendly than code. It's a looong way from tools like th…

Yes, you are getting it ;-) So currently Unreal allows you pretty fast development using some blueprints. Now what is missing is some AI tool that understands a bit of context. Imagine you want to animate some character there. You can stand in front of a webcam and tell UE that the character should move like this, and perform the move. Then you review it, you see you really don't look nice on video, but the basics of…

I see your point now. I agree that, thanks to better tooling and libraries (some of those maybe based on AI), there'll be less reinventing the wheel, and so less jobs for non-awesome programmers. I think it has already happened in games, where, due to widespread adoption of engines, there's less need for experienced C++/maths/etc folks (and, thus, less room in the job market left for non-geniuses) and instead we see jobs for lower skill "engine operators" (ex. gameplay programmers in C# for Unity).

It has not happened yet in the general/business programming field thanks to:

1. Software and automation being applicable practically everywhere (and also in part thanks to bubble money) - the field is still growing at a mad rate.

2. Business problems being less conducive to algorithms and AI. For example, try coming up with a good AI which can figure out how to handle an edge case in a supply chain app. The AI would essentially need to understand humans.

Post reply on HN