13 ms·
20 Years of Programming (2020)
- nurettin 3y agoNice bash.org theme, really brings back the 2000s vibes.
- Mmalowt 3y agoThe millennial vibes so to speak
- Lyngbakr 3y agoPerhaps (2020) in the title?
- lnxg33k1 3y agoHe isn't jesus
- urbandw311er 3y agoParent comment isn’t saying change it to “2020 years” they’re saying append “(2020)” to the end of the title to clarify it’s a post from 3 years ago
- bachmeier 3y agoJesus was a carpenter, not a programmer. And anyway programming in Aramaic limited what IDEs could do.
- lordnacho 3y agoMe too. My view of it has changed immensely. Scattered thoughts: - I don't think of myself as a {language} programmer. People will ask what language you code in, and I will throw out a few current ones. But I don't think of them as some particular skill that's hard to acquire. If I need a new language, I'll read the tutorials, and then I'm able to find my way. Only exception is c++, that one I still regard as a bit of a skill, where if you haven't tried it you have a lot of concepts to learn. - A lot of the skill isn't coding, it's domain knowledge. Not knowing what you are building is the greatest impediment to building it. - Another huge barrier to becoming a good coder is not respecting the craft of coding. Typically if you come from domain expertise, you are prone to this problem. "I know how trading works, I just need this coded up". This attitude will get you crappy code. In fact just needing something coded is code for not actually knowing what you want. - Satisfying things can often be closer to the code than the domain. Things like finally figuring out how to get the most out of a lock free ring. Nothing to do with the domain, but oddly satisfying. Another one is being able to reduce the size of the code. - There's a bunch of ancillary skills that you don't think of as programming, but you need to know them. Version control, devops-type stuff like how to provision a server. Feel tedious but again you can't really do the job without doing all of the job.
- KineticLensman 3y ago> a bunch of ancillary skills that you don't think of as programming, but you need to know them. Version control, devops-type stuff like how to provision a server. As someone who first coded seriously 40 years ago, and who keeps in practice on side-projects, this is where I find it hardest to keep up: the complex tooling and processes around actually deploying your code in a production environment. Reading HN has been invaluable in maintaining some sort of awareness of what is current.
- iamflimflam1 3y agoSticking to cloud services that abstract a lot of this away can really help. If you aren’t deploying for “scale” then using managed services is the key. Not sure what the equivalent of heroku is nowadays, but they can remove a whole bunch of headaches. I’ve also been pretty impressed with the serverless framework - particularly when used as a wrapper round traditional frameworks like flask or express.
- politelemon 3y agoThat was short and sweet, thanks for sharing it. I wish I could express my journey this way but am not articulate like others. So at least I live vicariously through you all. I reflect back on my earlier days and also realize my changing views. I used to take joy in solving problems in any way possible. I now take joy in solving problems with as little future headaches as possible for everyone.
- harel 3y agoTowards the end of the previous century and early days of the current one ColdFusion was a very attractive platform. It was good while it lasted, and even greater it ended (kinda).
- danybittel 3y agoIs that the ColdFusion he's talking about? https://www.adobe.com/products/coldfusion-family.html https://www.adobe.com/products/coldfusion-family.html Seems to be alive.
- harel 3y agoIt's not "dead", but rarely used for new projects if at all. A lot of legacy exists still (one of my businesses still runs it, from that period in time). Originally by Allaire, then sold to Macromedia which was later bought by Adobe.
- pud 3y agoI use, almost exclusively, the open-source version of ColdFusion (called Lucee). It’s fantastic. And users don’t care what your stack is, a long as it woks. https://www.lucee.org/ https://www.lucee.org/
- harel 3y agoYes, Pud, I'm aware of Lucee. I still have CF running in one legacy app but it's been sunset and not being updated. 100% on customers not caring. They don't. Ever. The stack wars are purely for our own benefit. We trump our own trumpet or however that saying goes... Now, I have to diverge here, and say that I'm a fan since F-Company days (which was ColdFusion wasn't it?), and a customer of DistroKid (well, my own kid took over the subscription and I need to get another one now).
- mianos 3y ago40+ years of programming. Full time, most every day of the week. I almost always have a look at some thing or other on the weekends, home projects, problems I think I solved badly at work during the week or experiments on ideas for things coming up. You know what is kinda wacky? I still feel exactly the same as I did when I started. Things I have done before get done very quickly or better and then I hit a challenging new thing. I love this shit.
- trhr 3y agoProgramming has changed a lot in 60 years, but not much in 40 years. By the early 80s, at least the workflow was fixed: type code on keyboard, read code on monitor, compile code, make cup of coffee, compile failed, debug code, you used the wrong brace, dummy.
- rpigab 3y agoIf you describe the woodcutting workflow as "go to forest - cut tree - put on carrier - repeat - ship", you could argue that woodcutting never really changed, but you now have forestry harvesters that cut a tree and remove all branches in less than 10 seconds, so it still changes some things like cost, scale and number of humans needed. In programming, if you have a modern IDE like the Jetbrains ones, you have all local source code indexed for auto imports, autocomplete and enhanced code search, no braces errors at compile time because the closing one is added automatically and if you still manage to put it wrong, there's an instant notification about it and a one-click smart autofix, also there's full local history if you mess up, without even taking the time to make small commits, then there's CI/CD pipelines depending on what you're building, you can also use Sonar in IDE and in CI, also Sourcegraph, and even if some of this was already possible with good ol' grep, it was not the same IMO. Then there's Copilot and ChatGPT, for many uses including prototyping stuff you don't even want to take the time to RTFM. But yeah, I can recognize that the workflow looks the same, because it's the same job, we still use keyboards and monitors, and we edit files on drives hoping that it produces some expected result, and get disappointed in our lives when it doesn't. And lots of us are still using the basic UNIX tools in their GNU versions like grep, awk, sed, vi/vim, etc., aged 30 (vim, ssh) to 50 years (grep, sed).
- osclarto 3y agoI'm really just poking fun but it is funny that Americans think a 40 minute walk is noteworthy 20 years after the fact lol
- galangalalgol 3y agoIf some part of your day involves 40min walk, we wouldn't comsider that a "walkable" city in the US. Is that a common commute walk elsewhere? With temperatures as they are now in the southern US and southern EU, I think it could quite realistically kill people.
- deleted 3y ago[deleted]
- IdiranVibe 3y ago40 minutes is not a particularly long walk for us in Europe (as a Brit I can still say that right?). Though if I was doing it every day for work I'd probably buy a bicycle!
- agentultra 3y agoIt’s been more than twenty years for me. My first paid programming job was when I was in high school. I made gambling and uh… entertainment web sites. If my parents knew they wouldn’t have approved. But my mom was single and physically incapable of working and I made good money doing it so nobody asked questions. Eventually the dot-com crash hit, I went back to school, and got back into programming a few years later and kept going. I’ve tried going down the management path for a few years but made the swing back to programming full time. Now I’m at another peak where I can’t see what’s on the other side: do I have another twenty years in me?
- chrislan815 3y agoWow strangely I grew up in petaluma. I never thought I would read that city name on Hacker News
- gilbetron 3y agoProgramming in the 80s, 90s, and early 00s was a much more fun experience, overall I think, because I was able to just write code most of the time. These days it is mostly dealing with all the plumbing issues to logistically handle the code (CI/CD, devops, k8s, terraform, etc) plus reading code and PRs and RFCs and tweaking existing code for bug fixes and optimizations and such. The code we are creating and working on is fantastic and of a mind-blowing scale solving amazing problems, but I really miss the days of just doing greenfield work. Just writing pages and pages of code. I think there are jobs out there like that, but they are relatively rare anymore.
- emrah 3y agoSounds like you should try to get a job at a startup as a (very) early engineer or start your own
- javier_e06 3y agoMy almost 30 years of programming: 1. Apple basic. Look at this! Again Again Again! GOTO 10 2. Pascal writeln writeln writeln 3. C meet the printf .... It will follow you for the rest of your life!! 4. C++ let the mayhem begin!! 5. Perl @#! 6. Python Try this, if it fails, go back to c 7. Ruby It is getting crowded in here 8. Java (Am I suppose to know all the other 7 too?) 9. Docker XML YAML AWS Bash DOS powershell ( I get the message... give up! )
- okibry 3y ago> I learned a bit about how not to run a company. I don't get it. Please someone explain this line to me.
- justincredible 3y ago[dead]
- nine_zeros 3y ago10 years in, I love programming. But I have come to detest management in tech companies. I would honestly take a 50k paycut if I didn't have to play management games to do my work.
- rvdginste 3y agoI started programming about 35 years ago and professionally about 20 years ago. Some of my thoughts: - Having the theoretical background is most definitely worth it. I often notice a lack of very basic knowledge on data structures in people who do not have that background. - Having come into contact with multiple programming paradigms (imperative, object-oriented, declarative, logic, ...) gives you access to more techniques to solve problems and to more ways to think about problems. I believe this is useful even if you only "tasted" these other techniques. - I notice that people with a theoretical background are often more fluent in learning new techniques and concepts, and in applying techniques and concepts that they know from one language in another language. Understanding concepts and techniques and being able to apply them in other languages is important. - I believe the field of programming is very big and one person cannot have deep knowledge on every domain in that field. So you have to make choices. In that context I really believe in focusing on broad knowledge in a certain domain and very deep knowledge on a subset of that domain. For example, I personally have broad knowledge on backend development, and deep knowledge on C# and ASP.Net Core. I really do think that deep knowledge is useful. Developers should try to obtain deep knowledge of their main programming language. Deep knowledge means that you know how to write something in a clean and compact way, that you are familiar with the language's idioms, that you are aware of all mechanisms that the language offers you to write code in a clean and compact way. The same goes for deep knowledge of libraries. Deep knowledge is something that you obtain through experience and by keeping yourself updated on the evolution of the language or library. The reason I mention "deep knowledge" explicitly is because I have the impression that deep knowledge is not valued that much anymore. Developers jump to the new hot library before they get a full (or even mediocre) understanding of the previous hot library, or they simply do not take the time to learn the language or libraries that they work with. This can then be seen in the code: bad custom code for things that are built-in in the library, using the library in a non-conventional way, ...