this post was submitted on 06 Dec 2023
18 points (62.9% liked)
Programming
17416 readers
78 users here now
Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!
Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.
Hope you enjoy the instance!
Rules
Rules
- Follow the programming.dev instance rules
- Keep content related to programming in some way
- If you're posting long videos try to add in some form of tldr for those who don't want to watch videos
Wormhole
Follow the wormhole through a path of communities !webdev@programming.dev
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I think the article is probably right. A software developer should be able to make software to do whatever needs doing. Maybe not good at any given thing, but able to do it. Eventually. Nobody wants a software developer who isn't themselves Turing-complete.
Will they always do it the Right Way if they spent 10 years learning compiler design and you want them to program an ESP32? Of course not. But if you hired a compiler engineer who cannot teach themself to solve a user's ESP32-shaped problem, then you have hired a compiler engineer who can be completely incapacitated by a sufficiently leaky abstraction.
Sooner or later when doing any one thing in software development, you are going to run into a problem that requires you to dig into something else that you don't actually know how to do. The abstraction leaks and suddenly how file handles work or the fact that an ESP32 needs to go to sleep sometimes is now impinging on your compiler design problem and the users are not able to do the things because of it. If you have an expert on whatever the thing is, sure, you call them in and they help you out. But if not, you learn enough to make yourself useful and you hit the problem with research and analytical thinking until it stops bothering the users.
If you don't have an expert, you should demand one. If I don't have an electrician, I won't ask my plumber to go read a book and come back to do the wiring. I would wait and get an electrician.
There was a day and age when that was largely the point of college--to teach you how to teach yourself. There was a difference in expectation from the high-school level, where following directions wasn't enough. You had to be able to do things you couldn't do in order to make it.
Not that it's the fault of current students--education has simply experienced inflation and everyone is trying to keep up. But it stands that those teaching-yourself skills will set apart a good developer from an okay developer.
Others have mentioned that the expectations can become toxic, though, especially from the non-technical crowd, and I agree. It becomes more of a question of efficiency than possibility. That is, if you've spent your entire career working on web stacks, and someone makes you program a PLC, it's gonna take a very long time for you to do it even satisfactorily.
There's definitely value to being able to self-teach and figure things out, but it needs to be paired with other soft skills, like "speaking manager" and setting appropriate boundaries.