Live data from Hacker News

The Insecure Developer

dev.to

51–59 of 59 posts

Re: The Insecure Developer

#51

I'm sleepy, so I shouldn't post, but here goes. Confidence is really important for a programmer. Writing good code is very, very difficult. On the other hand, writing terrible code that barely works is not so difficult. There is a pretty big gulf between the two and if you don't have confidence that you can achieve something better, it is unlikely that you will even look. Having said that, our industry is full of a l…

> Some people should not be in this industry -- not because they don't have the chops; but because they don't actually want to put in the time and effort to develop their skills. And it is an overwhelming task. In what world is it an overwhelming task? Maybe I've landed only at amazing companies but nobody is working the full 8 hour workday. There is time to relax and read random slightly interesting technical things…

You might have had good luck with other engineers, I have definitely encountered people who could not seem to get their head around even basic programming concepts. It comes easy to some given the appropriate time/effort, but I have definitely encountered people who did not seem able to pick it up.

It is also a difficult field given that it is one of the few where you probably will have to drop a huge, comfortable skill set every 2-4 years and start over again with a new codebase, different frameworks, and different languages. That does not happen in finance, medicine and law. If it seems easy to you, try jumping into a well established but poorly written project, built using libraries/frameworks you are not super familiar with ;).

I definitely agree with the hours thing though, if you establish yourself at a company you can pull off some pretty amazing work/life balance things.

Re: The Insecure Developer

#52

I'm sleepy, so I shouldn't post, but here goes. Confidence is really important for a programmer. Writing good code is very, very difficult. On the other hand, writing terrible code that barely works is not so difficult. There is a pretty big gulf between the two and if you don't have confidence that you can achieve something better, it is unlikely that you will even look. Having said that, our industry is full of a l…

>Some people should not be in this industry -- not because they don't have the chops; but because they don't actually want to put in the time and effort to develop their skills. And it is an overwhelming task. This is something that is near and dear to my heart, so I'm gonna take the opportunity to rant on it a bit. There are quite a few high-paying and fast-moving fields. Pretty much everything under medicine or law…

I dont think medicine or law are good examples for that. Medicine has you sleep deprived for years as a matter of policy because you are expected to work so much and law tend to be quite similar. At least in USA. I mean, yeah, you are expected to learn on the job, but the job is 100 hours a week.

Contrary to that, all older developers I know learn on the job and developed strategies how to make it possible to learn on the job.

Re: The Insecure Developer

#53

I'm sleepy, so I shouldn't post, but here goes. Confidence is really important for a programmer. Writing good code is very, very difficult. On the other hand, writing terrible code that barely works is not so difficult. There is a pretty big gulf between the two and if you don't have confidence that you can achieve something better, it is unlikely that you will even look. Having said that, our industry is full of a l…

If you need everybody to be top 1%, then you have management problem. Whether it is that majority of people get demotivated fast and stop caring or whether it is that there are no modules or tasks that are simpler, it still boils down to management problem.

If you have well defined APIs and modules, then you can actually give one low risk to cheaper junior. If he or she manage to do it great, awesome. If it is too much mess, then senior will redo it when change requests come first time. Most of the time, the module is not perfect, but is useable, junior learned and was useful. That is just one example of how to manage less then super genius super experienced programmers.

It is not so difficult to write good code and some tasks are easier then others. Writing good code boils down to being predictable plus following some rules. Comes easily with experience. But funny thing is, puzzles, whiteboards and tricks do jour have little to do with writing good readable code. They select for people who are good in solving short competition like problems. That is not nearly the same as writing large readable maintenable system. It is useful, in some projects more then in others, but it is still different skill.

That gets us to assigning tasks to people based on their personalities and skills. Someone who is super great in algorithms may write ugly code, someone who writes nice code can have hungups on frustrating tasks and someone learns fast but gets bored easily. Instead of complaining about those three being imperfect, good management assigns them different tasks (or have them choose tasks).

Re: The Insecure Developer

#54

Earlier quoted context omitted.

> Some people should not be in this industry -- not because they don't have the chops; but because they don't actually want to put in the time and effort to develop their skills. And it is an overwhelming task. In what world is it an overwhelming task? Maybe I've landed only at amazing companies but nobody is working the full 8 hour workday. There is time to relax and read random slightly interesting technical things…

You might have had good luck with other engineers, I have definitely encountered people who could not seem to get their head around even basic programming concepts. It comes easy to some given the appropriate time/effort, but I have definitely encountered people who did not seem able to pick it up. It is also a difficult field given that it is one of the few where you probably will have to drop a huge, comfortable sk…

You are not starting over every 2-4 years. A lot of what you learned is reusable, those frameworks resemble each other great deal. Even with changing languages, it is hard only when you are changing paradigm (procedural to object to functional). Things like syntax take less effort to pick up and re-learn. Algorithms, debugging and structuring of code and similar meta skills remain. Moreover, you dont have to chase every fad. They come and go and it is perfectly ok to skip some of them. Focus on things that you need or that promise longevity. Nobody cares now that I skipped COM+ years ago, nobody cares that I skipped browser differences or ruby just a few years ago and nobody will care that I am ignoring angular and python now.

I did jumped into established projects using libraries/frameworks I was not at all familiar with and liked it. Thankfully companies here are willing to hire like that. It is period when they literally pay you for learning on the job. That is awesome, it is hard to ask for more.

Re: The Insecure Developer

#55

Earlier quoted context omitted.

>Some people should not be in this industry -- not because they don't have the chops; but because they don't actually want to put in the time and effort to develop their skills. And it is an overwhelming task. This is something that is near and dear to my heart, so I'm gonna take the opportunity to rant on it a bit. There are quite a few high-paying and fast-moving fields. Pretty much everything under medicine or law…

Every job I've had and encourages engineers to have reading groups, on any topic they want. It's also my experience that most people ignore these opportunities Is this also what others see? Some reasons I can think are people: - don't want any more meetings; - are bad at having a merit driven discussion

Majority of meetings are not merit driven discussions.

Re: The Insecure Developer

#56
post #16

I'm sleepy, so I shouldn't post, but here goes. Confidence is really important for a programmer. Writing good code is very, very difficult. On the other hand, writing terrible code that barely works is not so difficult. There is a pretty big gulf between the two and if you don't have confidence that you can achieve something better, it is unlikely that you will even look. Having said that, our industry is full of a l…

> "How can we protect ourselves from the hordes of untalented hacks knocking at our door?" And I think this is the wrong question to have. "How can we get this new hire up to our standards?" would be better. Problem: once they're up to speed they'll be poached by a competitor. Answer: have real salary upgrades every-time some senior think they're better (not once a year at some review shitshow). Have a good working e…

I agree. It's not like our field is the only one with this problem, though. Take a look at professional football (soccer). There are a few teams that do not have an extensive youth program, but they pay through the nose for that oversight. Virtually every dominant team develops talent and secures them with good contracts. Of course, they have an incentive because they can sell players, which is unfortunately where the analogy breaks down.

Re: The Insecure Developer

#57

Earlier quoted context omitted.

> Some people should not be in this industry -- not because they don't have the chops; but because they don't actually want to put in the time and effort to develop their skills. And it is an overwhelming task. In what world is it an overwhelming task? Maybe I've landed only at amazing companies but nobody is working the full 8 hour workday. There is time to relax and read random slightly interesting technical things…

You might have had good luck with other engineers, I have definitely encountered people who could not seem to get their head around even basic programming concepts. It comes easy to some given the appropriate time/effort, but I have definitely encountered people who did not seem able to pick it up. It is also a difficult field given that it is one of the few where you probably will have to drop a huge, comfortable sk…

I think it's an issue with teaching. I am teaching a few people in my spare time and the way highschool (& sometimes university) teaches programming is not conducive to learning or understanding. I've still yet to meet a kid who wants to learn that can't learn it given reasonable time and proper explanation. Given the Internet likes explaining basic concepts in forty different ways, I think as time goes on learning CS only becomes easier.

With good fundamentals I think picking up new frameworks and different languages is fairly easy. With the exception of Rust and Haskell, which I'm interested in but never got around to using well, the other languages all seem to come fairly easy after a month or two. There will always be idioms you do not know or fail to remember but that's why there are linters, code reviews, and senior engineers.

It's definitely daunting to jump into poorly written products, and I feel every company has at least a section of their code base that is like this, but that's what good on-boarding and ramping up is for. These are all process issues and not fundamental issues with computer science.

Very few companies I've been at are good at one of these things let alone all of these things. A lot of the time you _are_ slogging at it alone and sometimes you go alone for too long because of ego or lack of confidence. These are all organizational and process issues. Some of it is individual issues too that one must overcome, but making it seem like only the passionate succeed in software engineering like everyone is the top 0.01% of their craft is harmful to the profession as a whole.

My solution to most of these problems is to find a mentor at your company. Anyone who knows what they're doing. I find most people are super nice when you ask questions as long as you are willing to learn and aren't just trying to get them to do something that seems annoying (i.e. asking ops people why your build fails...). I've never met an engineer who _doesn't_ want to talk about how something is designed, the pitfalls, and the hacky work arounds. People like being useful to other people. Let them be useful.

Caveat: I've met a few "legacy" engineers who were hired early and have a negative influence on the direction of the architecture. In companies like these? You can just leave. Everyone wants a good software engineer and as long as you're willing to relocate, you'll land somewhere fine.

Re: The Insecure Developer

#58
post #21

Earlier quoted context omitted.

>if you don't have confidence that you can achieve something better, it is unlikely that you will even look. This isn't true. The worst developers I know are also the most confident. They think their code is perfect the first time and they don't need to learn any more because they believe they already know everything there is to know. The more confident they are the worse their quality of work is. Luckily they are fe…

Confidence and hubris are different things. Hubris can come from lack of confidence at least as often as it comes from excess.

The line is much thinner than you realize.

(My point was confidence leads to worse code, not better. In fact, "confidence that you can achieve something better" is actually really a lack of confidence.)

Re: The Insecure Developer

#59
post #10
post #4

Isn't the point of an internship to continue your formation ? How comes companies making the same tests as for recruiting for real jobs ? "Hi, we are not going to pay you, or not very much, but please be at the same level as senior that are already working for us" I had interns back in the day I had an office (and not working from home) and I always made them work on basic tasks under my supervision. Once I had one w…

>How comes companies making the same tests as for recruiting for real jobs ? 1) Because desirable internships have more candidate applications than available slots. E.g. Google has 40,000 students wanting an internship but only 1500 slots.[1] With that supply & demand ratio, Google can be selective via difficult coding tests. 2) Even though internships are unpaid, companies evaluate interns to potentially offer perma…

It is illegal not to pay the intern
Post reply on HN