6 ms·
One thing I'm always amazed by when casually talking to people about what I do is how they don't think they can do it. Many people think that software engineeri
by karmicthreat 6y ago
One thing I'm always amazed by when casually talking to people about what I do is how they don't think they can do it. Many people think that software engineering and programming are some inscrutable thing. Sometimes I try to tell them that it is nothing special, it doesn't take a mega genius or math expert to do it. That the most important skill is just being able to solve real problems, soft skills and breaking problems into parts. As well as the ability to self learn and research. I get the idea that most people don't believe that though. Or they think its a humblebrag. Rant done, it's just frustrating that people limit themselves like that.
- rozularen 6y agoFor me it's exactly the same. Usually I try to explain them saying something along those lines but halfway through and I already find them distracted or confused
- gonzo41 6y agoA lot of jobs are very linear, like taking a task though some steps and wrangling people to help along the way. I think programming in a professional context is a very unique job in how much fresh thinking is required most of the time. Even at low levels you really work in a very independent way and have to make serious choices. Having a ticket rock up for a JBoss 4 app written in Seam and Rich Faces becomes a challenge because yes I know the big topics like Java, App Servers etc but there's all this new old framework knowledge I have to reacquire to solve the issue. Most jobs are not like that.
- bonoboTP 6y agoThere are two sides to this. On the one hand, yes, software needs fresh thinking because reuse is simpler than in other industries (not perfect, sure, maintainable/extensible/modifiable/modular code is really hard to write). In a lot of jobs people have to physically manufacture or process something and it requires effort for each new item. In software, if you write yourself a script that does the weekly maintenance on the server, then you won't have to type it every week. You still have to fix any new problems that inevitably pop up, but you don't have to do the exact same stuff over and over. On the other hand, I think this attitude of programmers is too smug. Many jobs that seem simple have to solve difficult problems and require engineer-like thinking. Sure some low-skill jobs, like cashier or mail delivery or truck driving don't require a lot of novel thinking on a daily basis. The bulk of the job is carrying out what you know. But take for instance event organizers: no two events are the same. You need to negotiate the requirements from the client just like in software, you need to split up the work, plan it all out, execute together etc. Constraints often force you to be inventive. Or how about lawyers? Even in mundane affairs, like divorce, no two cases are the same. There is probably more in common between one corporate mobile app or CRUD system and the other, than the circumstances of two divorce cases. How about doctors? Sure some of it is routine, like much of a GP's work. But in complex surgeries they need to come up with a specific strategy and plan for the individual patient. In fact, I think most jobs paid at the level of software engineers require a similar amount of novel thinking. The contrast is not software vs rest, but well-paid professional jobs vs low-paid, low-skill repetitive jobs (physical and mental as well, like office paper pushing). Furthermore, many software jobs are really 9-5 "manufacturing". Not every dev is John Carmack. There's a huge demand on really simple business stuff and the very same functionality gets built over and over again by different companies for different business clients. These may be lower paid than the fun Google-level research-like creative software jobs, but they are out there. So top software jobs should be compared to the top of other professions, not just to any "white collar" job (because in the latter case you also have to include the "code monkeys" in the software jobs).
- p4l4g4 6y agoI completely agree! In my experience, this is often due to a lack of interest. Most people (including myself) often just want a product to work. When something fails to work correctly or you want extra features, you bring it to a shop to get it fixed. When you're not too interested in the process of fixing it, the process behind it can feel like magic. I feel this way with most products I own or buy. For instance, for me, getting my car fixed can feel like this at times. Getting deeper and deeper in computer science learned me that I could potentially learn allot, as long as I'm interested enough! Debugging a car couldn't be much worse than debugging a computer system, can it? You probably shouldn't start with some high end car, but an older example should be doable, right? This attitude got me through most of my college years. Sometimes you have to adjust the bar a little (or a lot) , but in the end, you probably can pull it off.
- boycaught 6y agoAgree. This is a skill that can be acquired. No great computers scientists or programmers are born, they are made. Unfortunately, a vibrant interest and curiosity in core skills of mathematics, logic, and even writing (communications) is pounded out of lot of people early in life, and it makes computing seem inscrutable, unattainable and probably even boring.
- deleted 6y ago[deleted]
- globular-toast 6y ago> That the most important skill is just being able to solve real problems, soft skills and breaking problems into parts. Do you really believe this? I'd be interested to know what you do for a living. Programming requires the ability to grasp abstract concepts which most people simply do not possess. Talent is a thing. I'm terrible at composing music even though I enjoy playing it. I have no talent. Most people are terrible at programming. I have to conclude that anyone who thinks this is very young and/or has never actually tried to teach someone how to program.
- hnarn 6y ago> the most important skill is just being able to solve real problems, soft skills and breaking problems into parts. As well as the ability to self learn and research. Seeing a very non-technical friend of mine being completely immersed in games like "Factorio" and "Satisfactory" where the entire game is essentially just putting constantly more complex and valuable resources together in automated ways is fascinating to me. He will talk about efficiency ratios until someone stops him, and when he's not playing he's reading wiki articles to better understand the problems he's presented with. The sheer look of glee and pride when he gives a tour of all the automation around his base is infectious, and although he doesn't share my amazement at my conclusion, I can't help but think that he's already doing what most engineers I work with do every day, and he doesn't even realize it. Sometimes I feel like there's so much untapped potential out there, people that would have loved to get their hands dirty with micro-controllers, soldering, programming and all the other stuff that could help them solve real world problems, but they were just never given the chance. They never had the mentorship or the right context to develop those skills. Instead, most programming is done under soul-crushing enterprise conditions, and a lot of teaching about programming is (understandably) only about whatever will benefit you in the workplace. When you're an adult, there's no time for play, so most programmers I know would rather do anything but write code and solve problems when they come home from work. I'm not sure what my point is here, but it is interesting how people look at programming and software engineering as something so inconceivably complex. The way I see it, it's basically just digital plumbing and carpentry, as long as you know how to use the toolbox: and most people will never even try it.
- andrewflnr 6y agoGod, yes, all the wasted potential out there hurts my soul.
- humaniania 6y agoThey're having fun and learning. I think it's OK.
- andrewflnr 6y ago
- josefrichter 6y agoDisagree. You need very good, structured, abstract thinking. Most people don't have that. Even many developers don't have that or aren't very good at it.
- astura 6y agoAnd even among the people who have it many can't stand stuff like programming - you have to have a particular type of mindset/disposition to be successful.
- jlj 6y agoThere is a steep learning curve to go from scripting out some solutions, to understanding good design patterns for production quality code, and to run and deploy an application. I have a non-technical BA degree and it has taken me years to feel competent at building software, and every day I have to push myself to learn new things. And the learning is often "two steps forward, one step backwards." It's not for everyone. > Rant done, it's just frustrating that people limit themselves like that. "If I can do it, so can you" isn't a fair judgement. Everyone is different, and CS/programming has many complexities that not everyone is interested in putting in the time commitment to learn it. For me, with time and experience it has become easier to put a solution together, but it still not easy work and many times I am mentally exhausted by the end of the day.
- jorblumesea 6y agoRealistically, the amount of time it would take to teach yourself CS is immense. It doesn't take genius, but it's a ton of work. So when people think "they can't do it" they might be right from a life/work/time standpoint. I know many people that have tried to get into it and it's extremely daunting. To learn anything, on your own, self directed, is hard for any subject. I think programmers and devs underestimate the amount of time they spend on "getting good". It doesn't feel hard when you got into it in high school, got a 4 year degree, then spent 10 years in the industry. But if you're 26, working in real estate and have a significant other, it's a huge ask.
- dennisgorelik 6y ago> being able to solve real problems, soft skills and breaking problems into parts. As well as the ability to self learn and research You are implying, that most people can do that. I think only about 15% of adults can do what you listed.
- peteretep 6y agoAnd only about 50% of people employed as programmers.
- cutemonster 6y agoAnd of them only 10-20% do it okay well (I think)
- nnoitra 6y agoI beg to disagree becoming a solid software engineer requires a lot of intelligence and persistence as well as a certain mindset. Sitting down and staring at a problem for 10 hours with very little progress can be extremely demotivating for some. To just get a job in software, the skills that are needed aren't really high though.
- abiogenesis 6y agoIt's usually the other way around for me. People I talk to generally think that they can be software developers without much effort. I even met one guy who said that he wrote some HTML back in the day and it was easy, so he was thinking of making a career in software development as it wouldn't take him more than a few weeks to pick it up.
- Traubenfuchs 6y agoFrustrating? It's our greatest luck! If people would accept how easy programming is we wouldn't get paid that good for it on all levels. Some jobs are protected by difficult, mandatory, exclusive education: Law, medicine, piloting. Software development is one of the least protected areas and we also face the threat of outsourcing. To most companies we are an unpleasant cost factor in need of optimization. Unless you plan to become a manager or owner who profits from cheaper labor cost and more potential employees to chose from, do your part to keep people away from programming.
- himinlomax 6y ago> Many people think that software engineering and programming are some inscrutable thing It's not inscrutable, but it's not something everyone can do. And among those who can, not all of them necessarily enjoy it. It takes a high enough IQ (whatever reservations you might have about IQ tests, there's no doubt they match with programming ability) as well as an appropriate disposition. I mean you wouldn't expect every single person to be able to play music or paint well enough to make a living out of it. I sure as hell wouldn't want to be a lawyer, I doubt I could even do the job at a mediocre level if my life depended on it. (Not that I dislike the field: I watch more law-related Youtube videos than I'd normally care to admit, which reinforces my belief that I'd suck at it.)
- cutemonster 6y ago> whatever reservations you might have about IQ tests, there's no doubt they match with programming ability If you happen to have some article or research in mind it'd be interesting to read (Or maybe you read sth long ago and didn't save any links / references)
- himinlomax 6y agoHave you taken or even just looked at an IQ test? The kind of things they make you do just look like the type of tasks a programmer has to handle day in and out.
- cutemonster 6y agoRaven's Progressive Matrices. I would expect good results to be strongly correlated with an ability to learn and be good at software -- and therefore I was curious about if you had read something related to that. > just look like the type of tasks a programmer... Hmm, I think RPM looks very different from writing code. Maybe you had other tests in mind? (Then I'm curious about which?)