Oh my god this is such pompous article. None of these things are specific to software developers, and 90% of the things it says are platitudes that mean nothing. There are even some that are just wrong, like the 'throw it away' section. "It's not the code that is valuable. It's the understanding you've gained from building it." What? Maybe at some places, but where I work, the software I write is NEEDED. And this: "N…
Developer Manifesto – You Are an Artisan, Not an Engineer
81–90 of 91 posts
Re: Developer Manifesto – You Are an Artisan, Not an Engineer
#82Re: Developer Manifesto – You Are an Artisan, Not an Engineer
#83Of course, the original comparison between coders and artists was made by Paul Graham in Hackers and Painters: https://www.amazon.com/Hackers-Painters-Big-Ideas-Computer/d...
And then there was this: http://www.idlewords.com/2005/04/dabblers_and_blowhards.htm
Re: Developer Manifesto – You Are an Artisan, Not an Engineer
#84Earlier quoted context omitted.
I always found that people who prefer craftsman over engineer are those who're afraid of math (no offense).
Though I don't know about you and your experience, I'd guess that the observation is the result of confirmation bias.
Re: Developer Manifesto – You Are an Artisan, Not an Engineer
#85Earlier quoted context omitted.
If I had wrote that, it would have been about how it led to the development of the Cesarean section operation. In the US, and many other places, the prevalence is much higher than the medical need. When there is no medical need for a C-section, there really isn't any benefit over the risks to the mother and child. Also--and this will probably sound quite hand-wavy or too woo-woo for most of HN's demographic (I assume…
Keep in mind that a C-section is done only when normal labor isn't enough; it's an alternative to the use of forceps (which is very difficult to teach and can be catastrophic) and not to normal vaginal delivery.
Besides elected c-sections, the prevalence has been increasing, where a labor shows the slightest risk and suddenly it requires a c-section.
Re: Developer Manifesto – You Are an Artisan, Not an Engineer
#86> Writing stable code and being available to fix your bugs, even sometimes after hours. Nah I'd rather be available during hours to fix my bugs. Call me old fashioned, but does anyone not believe your work should not follow you home? I love what France is doing with the "right to disconnect"
Hear, hear! The inabilty of the young folk to disconnect from their work is disasterous.
Re: Developer Manifesto – You Are an Artisan, Not an Engineer
#87Earlier quoted context omitted.
If I had wrote that, it would have been about how it led to the development of the Cesarean section operation. In the US, and many other places, the prevalence is much higher than the medical need. When there is no medical need for a C-section, there really isn't any benefit over the risks to the mother and child. Also--and this will probably sound quite hand-wavy or too woo-woo for most of HN's demographic (I assume…
And once a mother has a c-section, most (all?) future births are via c-sections as well. There is a cost to the mother - major surgery - to the benefit of children. Modern society considers this a worthwhile trade, but it would have meant the death of the mother not even a century ago. I have no real way to tie this back to programming; other than perhaps to note that we're likely still in the dark ages of programmin…
Look at HTTP, WebSockets, NodeJS, JS! Docker!
Churning out "apps" and delivering deliverables is the focus, not engineering. Ticking off boxes for enterprise is more important than product feel and user satisfaction. And so on.
And once you got hooked on docker and nodejs (with typescript and VS Code) why would you go back to hacking perl scripts that invoke long forgotten binaries written in the darkest C dialects, darker than void* itself, even if that damn docker image is 600MB, the runtime memory cost is not much less, and it's managed by kubernetes which needs gigabytes of RAM just to run an apiserver and scheduler and a kubelet (node/server manager).
Re: Developer Manifesto – You Are an Artisan, Not an Engineer
#88Earlier quoted context omitted.
Serious question. Can you offer any advice on going from web/mobile app developer to the level of systems/aerospace software engineer? Say, over the course of 5 years?
I'm not sure if you are asking how to transition into working in aerospace? Or how to apply aerospace engineering methods to web/mobile? (Or maybe something else?) Aerospace development is not categorically harder or more skillful than any other sort of software development. Some areas are math-heavy, but that's true elsewhere too. The biggest difference is the process overhead.
Thanks for responding. Yes that's my question. I assume that domain knowledge in embedded systems, as well as aerospace science are minimum requirements?
Re: Developer Manifesto – You Are an Artisan, Not an Engineer
#89Earlier quoted context omitted.
That is one of the most subtly disturbing snippets I've ever read about the state of the medical "system" in the USA.
Can you elaborate on what you find disturbing? The implication of high failure rate, or the shift of focus to reliability?
But I think that the part that most rubbed me wrong was the realization that it Apgar (a rather crude system for summarizing neonatal health, IMO) that, in part, caused the C-section to rise in popularity.
That's gross. It's like using `free` to measure RAM usage on your server, and then determining that every app with usage over n needs tighter JPG compression, reducing image quality. In other words: you measured the wrong thing, implemented the wrong fix, reduced the quality of the outcome, and then made the above standard practice.
Re: Developer Manifesto – You Are an Artisan, Not an Engineer
#90Earlier quoted context omitted.
I'm not sure if you are asking how to transition into working in aerospace? Or how to apply aerospace engineering methods to web/mobile? (Or maybe something else?) Aerospace development is not categorically harder or more skillful than any other sort of software development. Some areas are math-heavy, but that's true elsewhere too. The biggest difference is the process overhead.
"I'm not sure if you are asking how to transition into working in aerospace?" Thanks for responding. Yes that's my question. I assume that domain knowledge in embedded systems, as well as aerospace science are minimum requirements?
Lots of people are hired into aerospace straight out of college, with degrees in non-aerospace things like computer science and electrical engineering. A lot of the domain knowledge is hard to come by outside of working in the field, and it's generally not expected for an entry-level role.
But even if not strictly required, some related domain knowledge would sure make you shine as a job candidate. Specifically:
- Lots of software is written in C, C++, or (less often today) Ada. I would suggest focusing on being skillful with C first and C++ second. It would be nice bonus points to at least have some familiarity with Ada, even if the most you ever do with it on the job is read old code. Verification test frameworks will likely be in some high level scripting language; I've seen Python and Lua used, myself. Model-based development tools (like Simulink) are used sometimes too.
- Understanding of real time embedded systems would be great. There are a variety of such systems out there; real-time Linux would be a good option to become familiar with.
- Knowledge of low-level networking concepts. I.e., the bytes that make up UDP packets, TCP packets, packet headers. Whether if you work directly with networking or not, you'll likely encounter "one box sending data to another box" all over in aerospace. Good ol' Ethernet is used, but so are other more obscure protocols like ARINC 429, ARINC 664, MIL-STD 1553, etc. While most of these specs are not available free of charge, they are available to the general public. They're not exactly light reading, though, and I've learned more with the spec in one hand and a packet sniffer on a running system in the other, than trying to comprehend the spec by itself. But Ethernet / TCP / UDP is easy to learn about, so start there.
- Aerospace science? If you went out and got a degree in aerospace science, especially a combination of aerospace and CS, I can imagine companies tripping over themselves to hire you. Do you need it to do the job? Depends on the job. You could have a successful career developing software in aerospace without actually knowing much about aerospace, because there's just so much to do. One developer does the aerospace calculations, and another one tackles making the code thread-safe, and so on. But a solid understanding of aerospace science concepts would make you quite desirable as a candidate, and would open doors for you to work on things that other "CS-only" people don't know how to do. [There are some aerospace classes on edx.org -- if you like online courses, could be a good way to start. The University of Kansas has an extensive program, though I don't think they offer it online.]
- Related, and maybe easier (or maybe harder), would be to learn about flying. A ground school class would be a good start, and can be done online. Holding a private pilot certificate would be some great resume fodder, and would also give you good knowledge for the job. You would have better understanding of another facet of aerospace knowledge, and would also have more of an "end user" kind of perspective. [Look at http://www.kingschools.com/ for some online materials, or try a local flight school. Quick start: try X-Plane.]
Any or all of that would be good material for being a more attractive job candidate. But again, many people get their start without knowing much or even any of that, and pick up what they need on the job, so it's not strictly required. It would just be helpful. And, depending on the job market at the time, it could be extremely helpful.
And to restate my opening remark, there is immense breadth in this seemingly tiny niche field. Due to the very nature of the work, no one person does everything. You would almost certainly not do the aerospace calculations, and do the network programming, and do the verification testing, and do the graphical displays, and do the air-to-ground communication system, and do the ... And that's just for the software! Someone designs the nose cone, and the wings, and the fuel system, and the passenger seating, and the ...
As always, beware career advice from random people on the internet. But I hope you found something helpful here!