3 ms·
I mentor a few recent grads and folks who change careers into tech, so I'll share here what I've told them for years. Writing code is the easiest part of softw
by alpha_squared 2y ago
I mentor a few recent grads and folks who change careers into tech, so I'll share here what I've told them for years.
Writing code is the easiest part of software engineering. You're hired for your perceived ability to solve problems the employer needs solved. Many times you'll solve it with code. Sometimes you'll solve it with process. In every instance, you're expected to solve it using your learned experience and ability to critically think through the constraints (time, money, etc.).
If you can't be bothered to deal with the easiest part of your job, writing some code, how do you expect to be trusted with the hard stuff? I'm not saying don't use AI tooling, but I am saying don't cheat yourself by becoming dependent on it.
- VoodooJuJu 2y ago[dead]
- szundi 2y ago[dead]
- svachalek 2y agoCouldn't have said it better. Unfortunately people who should know better like Zuckerberg are perpetuating the idea that coding is the whole job.
- light_triad 2y agoPartly because coding has become so hyper specialised in large companies, partly because folks who sell AI have an incentive to exaggerate to sell more. Programming is over, jobs will disappear and we'll all be on UBI while AI turns into terminator. Meanwhile designing software systems still requires lots of intrinsic motivation and persistence
- CharlesW 2y ago> If you can't be bothered to deal with the easiest part of your job, writing some code, how do you expect to be trusted with the hard stuff? If writing code is the easiest and least impactful thing you do as a software engineer, why does it matter if you use AI to assist with that part? Or to come at it from another angle, why is using Stack Overflow/Google in the hunt for answers and examples good, but using AI models is not good?
- jpollock 2y agoThere is a lot of knowledge that devs gain by seeing how their code evolves over time. Things like "This encourages people to add features here, here and here". Without that experience, the code becomes inscrutable very quickly.
- alpha_squared 2y ago> If writing code is the easiest and least impactful thing you do as a software engineer... Not sure if I've hit a nerve, but I never said it was the least impactful. Code is the distillation of all the work that precedes it to accomplish a task. It's the easiest part, but it's essential to the final solution in most circumstances.
- hattmall 2y agoI wouldn't say using AI to write code is bad at all. The problem is that it usually doesn't work in complex situations. If you already know what you want to do, feed it very specific instructions covering most of the bases then it can save you some time for sure. The main thing is you really actually need to know what it's doing to be able to reasonably utilize the output. If you don't actually know the capabilities of the code and you are stringing together generated output then that's bad. Just like it would be bad to copy large sections of code from stackoverflow. It's also probably not going to work.
- kolinko 2y agoLLMs, when used by an inexperienced developer will produce code that has a ton of fluff and is difficult to read/change. The worry is also that if devs don’t learn to write simple code, they will plateau very fast because they will not be able to continue beyond what llms provide - this was also an issue with StackOverflow, but to a lesser degree. Having said that, I’m absolutely pro using LLMs - it’s just a matter of using them properly for either education, or code writing. For experienced devs they save a ton of work writing boilerplate code and learning new libraries, for inexperienced they help overcome initial hurdles with grammar - and can teach how things work, if junior asks. As a dev with >20yrs experience - vanilla ChatGPT produces code that has 80% too much verbosity, but with good prompts uou can cut down on that, and if you refactor what it wrote it is very useful - especially when dealing with unusual feameworks/languages. It’s also great at explaining concepts and “proper ways” to write code in new languages. It is very poor at designing novel architectures though.
- globular-toast 2y agoThere's also the "big picture" part of software engineering, that is the architecture and design of a piece of software. It's all done in the head (and maybe on paper). Once my fingers hit the keyboard the code pretty much writes itself because the hard part has already been done.
- asdff 2y agoI wish we got more affordances here with this side of the experience. The nicest thing recently I think are the idea of a directed acyclic graph that describes the system. But even these get cumbersome when many parts are involved and these are only presented in 2d and fully appreciated when they fit within your monitor. While it can be nice if these sorts of things can be visualized in 3d in virtual reality perhaps, I think that in 3d digital environments that often look structurally similar it is easy to lose a sense of subconcious wayfinding that we inherently have when we observe real things in real life. In other words, a messy dag is hard to interpret, but your messy desk full of papers you can subconciously place where everything might be, because it exists in the 3d space in real life where all your senses are active on it as they are designed to be. not in a simulated manner but the real thing that can never be fully modeled. Companies used to model things in 3d via clay or balsa wood to help visualize ideas in this manner. Eventually people like architects started using autocad instead of balsawood. But one wonders if a certain dimension of understanding of a project was lost when we went from something we could walk around and look at unencumbered, into a digital abstraction of some real thing.
- williamcotton 2y agoI agree, I find it way easier to orient myself with a desk full of printouts and highlighters than 45 Word documents open somewhere on a computer screen.
- globular-toast 2y agoYeah, or a bunch of textbooks and papers etc. I'll often have a book or two on my desk and many on the shelf near me. I find I can thumb to pages of interest from memory throughout my whole bookshelf. I've said it many times: the book is still the number one technology for reference. I've often thought it's about the practical benefits of having essential limitless space for these materials, but there is definitely also something about engaging our real spacial awareness capabilities for information retrieval.
- NoPicklez 2y agoTrue, to a degree but I think this reflects different levels of responsibility and experience as you grow in your career. Coding is the primary part of the job particularly when you're a graduate, to solve problems using code and you need the skills to be able to code and solve basic problems using code. If you don't know how to code then you will struggle. As you build that experience and grow in your career you begin to learn and have to capacity to think bigger and start to incorporating aspects of time, money, process and other business factors that you don't really have the ability to do if you haven't spent time in the arena. I work with a lot of graduates in cyber security and many of them have very "technical thinking" but don't think about business tradeoffs of time and money when looking at security controls. That is primarily because they're still trying to harness their technical skills, which is what they will do early in their career.
- jc_811 2y agoAbsolutely agree. I went through this as well with friends who did bootcamps during the covid craze. After 3 months they understood how to code and the syntax, thinking that’s all they needed to be a “full stack developer” When they weren’t getting any jobs I tried to explain that the syntax of coding is the easy part. The hard part is everything else.