10 ms·
I think the real reason people like Amazon cloud is for people like me who are decent programmers but who don't know or don't want to know how the system works
by jxcole 14y ago
I think the real reason people like Amazon cloud is for people like me who are decent programmers but who don't know or don't want to know how the system works internally. This guy sounds like he has a lot of what I would call "ops" knowledge which is great for him, but if I decided to start running my own website today I probably wouldn't have the chance to learn all of that stuff.
- giulianob 14y agoCloud providers are trying to abstract it all away while in reality the real world factors cant be abstracted. E.g. latency if servers aren't close enough, I/O performance due to virtualization, disk latency if you are using block storage, etc... have to still be understood. What I've noticed with people using the cloud is that they have to still understand how the cloud services work and many times make up for it in app logic. Look at Netflix for example having to make their entire infrastructure extremely tolerant to latency due to the spiky nature of AWS. At the end of the day, you will have to deal with these factors. You can either do it by learning how the cloud works and figure it out there or by running your own infrastructure. One important point the article makes is that if you roll out your own you can at least control those factors. It's not to say that clouds aren't useful. They provide a lot of value to many apps but it's not a silver bullet that makes it so you can be ignorant of infrastructure. Maybe one day it will be but as of right now it's important to understand the tradeoffs if you plan on using the cloud.
- seiji 14y agodon't want to know how the system works internally. I see this sentiment a lot. People seem to be proud of technical ignorance ("We don't even know where are servers are! lol!") because they are too busy doing whizbang gollygee Important Work like making the world's four billionth PHP CRUD app and setting up a DB without durability guarantees. "But we don't have time to learn... we are busy being cool and popular!" Sometimes you have to slow down and actually learn things. Sometimes you should be an intern for a year before being a CEO. (It sounds like you've already resigned to not learn things: I probably wouldn't have the chance to learn all of that stuff.) what I would call "ops" knowledge which is great for him That's kinda impressive: dismissal condescension towards someone who knows more than you. It provides the ego with a nice padding. "They know more than I do, but what they know is silly and useless in these modern cloud-based times. I feel sorry they actually had to learn how things work." Programming means manipulating a system. Basic/beginner programmers pretend the entire system is the API of their favorite (read: ruby) programming language. You can get pretty far not learning more than that, but you will always be limited. You will always be pretending to understand more than you actually do. If you aren't a "computer person," you'll stop at the basic level. You'll spin your wheels cranking out things that feel the same forever. What separates a "computer person" from people just in it for the glory or money is their insatiable knowledge hungerness. They want to be good, better, and then optimally best. Intermediate programmers realize (and have a mental model of) how everything works together including a basic CPU, bus, memory, network (from hardware up to packet switching through routing and DNS), your language stack and heap, calling conventions, directly attached storage, network attached storage, and half a dozen other things depending on speciality (graphics? wireless? robots? distributed system? embedded system? web?). Advanced programmers do not exist.
- ianterrell 14y ago>> don't want to know how the system works internally. > I see this sentiment a lot. I like that sentiment a lot. We have finite time and finite brain cycles. Stand proudly on others' shoulders and build something bigger. There's no shame in programming in high level languages to deliver more value more quickly. Ditto with operations, ditto with everything.
- nicholassmith 14y agoAnd there's no shame in standing on other peoples shoulders, but if you're building a web application you really need to think about having at least person with a devops background. Hell, even if they know how to compile from source and monitor properly that'd put them in a good place to go forward.
- cbsmith 14y agoIt's great to stand on the shoulders of others, but you ought to be able to look down without getting lost.
- flatline3 14y ago> There's no shame in programming in high level languages to deliver more value more quickly. Ditto with operations, ditto with everything. There is shame in not understanding how that high-level language actually works, because it means you'll invariably be a worse programmer than the guy that does understand what he's actually doing.
- seiji 14y agoI think it's the difference between a user and an engineer. As a user, you... use. You don't care how it works. You drive a car; you don't design a car. Things get fuzzier in software development. Programmers are supposed to be users of everything they aren't programming. Things are supposed to be black boxes with fully isolated layers of abstraction. Ha. Doesn't work. To be competent, you must be aware of, at a minimum, what pieces are under you, at an intermedium, how they work, and at a maximum, how to create them yourself. I'm only talking about people who want to be great technical workers though. If you just want to make a MVP to get funding then hire dweebs, who wasted their life learning computers, to make you rich, feel free to do that instead.
- rhizome 14y agoI see it simply as a failure of developer-centric hiring.
- paulsutter 14y agoYeah it's a real hassle to learn all that stuff. Fortunately everyone here reads Hacker News so we already know that AWS has downtime that can affect whole regions, and that platforms like Heroku don't yet provide resiliency that spans regions. So if you don't really care about occasional downtime, you don't need to bother learning all that hard stuff. It's perfectly ok with me if your service is down.