3 ms·
> 1. You do not have to prove yourself. > Software is a new field and nobody knows how to do it. If someone says you are unqualified and therefore you must do
by generic_user 11y ago
> 1. You do not have to prove yourself.
> Software is a new field and nobody knows how to do it. If someone says you are unqualified and therefore you must do maintenance work, you should question that person. We have an upside down system where the people who are paid the least do the crappiest work. They tend to be young and naive.
Software development has been meticulously studied for over 40 years. From Dejurka, 'Goto's considered harmful' to Parnas, 'On the Criteria To Be Used in Decomposing Systems into Modules', Design patterns, academic studies, Pair Programming etc.
> 2. You are not a commodity.
Your HR department has a list of 'potential hires' to replace any position in your company at a moments notice. The quickest way to build a bad reputation is to think you are not replaceable and act accordingly.
> 3. Software engineering is an art and a science but rarely both at once.
> The planning and design process is an art, but once the requirements are in place you can proceed more deterministically.
No matter how brilliant you architecture and plan is there will inevitably be new requirement or changing requirements that cause you to continuously revise re-architect and re-write large part of your code base. Both design and Implementation are a messy evolving process.
> 4. You are not your job.
If you do not love this then its not for you. Thats true in many professions and Programming is no different.
> 5. The world is a distributed system.
I could not parse any overall point to this passage.
> 6. You are not a lottery ticket.
???
> 7. Choose action over planning.
Talk is cheap and execution is scarce.
> This is why nobody cares about your ideas, they care about seeing your prototype. John Mayer said that all he had to do to become successful is finish his songs.
Writing a plate of spaghetti code that does some neat thing is not what makes you an employable dependable developer. Writing clean well documented well though out efficient code that meets the specifications is what does that. That take planning and discipline.
> 8. Software engineering is full of lies and people who will try to take advantage of you.
This is a bit psychotic.
> 9. You are not your credentials nor your past.
You very much are. You do not necessarily have to be an Academic golden boy but you will be judged by your previous experience and projects.
> 10. As a software engineer, you can take career risks aggressively because your downside is fundamentally capped.
That works out great unless you have to pay 2500$ rent each month or buy food and clothing for your children etc. Not everyone that writes software is a 19 year old trust fund baby...
- gizi 11y ago> Your HR department has a list of 'potential hires' to replace any position in your company at a moments notice. The quickest way to build a bad reputation is to think you are not replaceable and act accordingly. Things are probably the other way around. Don't take the job if you think that you will be easily replaceable. In that case, take another job. > you will be judged by your previous experience and projects ... Never apply for a "job". Always apply for a project, or rather, do your own project, if you can. What matters, is what the project at hand is all about, and if you have the ability to do it. Discussing unrelated issues about credentials or unrelated previous experience, is a sign that the person in front of you has time to waste; his own time, but also yours. That is a red flag.
- generic_user 11y ago> Things are probably the other way around. Don't take the job if you think that you will be easily replaceable. In that case, take another job. So if you apply for a position at Google and they offer you a job that suits your skill set and background you should not take the job because Google potentially has a list of thousands of people they could replace you with? wat? > Never apply for a "job". Always apply for a project, or rather, do your own project, if you can. What matters, is what the project at hand is all about, and if you have the ability to do it. Discussing unrelated issues about credentials or unrelated previous experience, is a sign that the person in front of you has time to waste; his own time, but also yours. That is a red flag. If you apply for a position and the company is not interested in your experience or previous projects then I'm fairly confident of two things. a) The company is a sweatshop and burns through junior developers like tissue paper to flame. b) The work you will be doing will be the worst sort of low skill crap work that no one with a half way decent resume and experience wants to do.
- gizi 11y ago> So if you apply for a position at Google and they offer you a job that suits your skill set and background you should not take the job because Google potentially has a list of thousands of people they could replace you with? wat? Yes, exactly. If it is trivially easy to find thousands of people with your skill set and background, there is something wrong with that skill set and background. You will need to work on it, because these things are an accident waiting to happen. > a) The company is a sweatshop and burns through junior developers like tissue paper to flame. Not really. They have a real problem and they cannot readily find someone to solve it. And then you come along. Now the problem may finally get solved. This is how it best works. If not, there is something wrong with the entire situation. > b) The work you will be doing will be the worst sort of low skill crap work that no one with a half way decent resume and experience wants to do. If you do not have a pretty much unique selling proposition, you will indeed compete at the bottom of the market. You need the ability to solve a particular type of non-trivial problems and you must preferably have been specializing for years in doing that. People in your field understand what the value proposition is, and there is no need to endlessly debate this with them first. Google do not use the technology in which I specialize. One day they may, but at the moment, they don't. So, I would never run into them, when occasionally looking for a project (once every 3 - 5 years). The day that Google starts using this technology, they could indeed try to ask me for an interview, but why would I prefer them to the established players? Am I replaceable? Yes, but Google are even more replaceable. I will have done fine for years, before they decided to enter the field too. Who exactly is the one that is replaceable here?