4 ms·
- Many well known people in tech are charlatans. - There is no integrity in keeping silent when witnessing wrongdoing, even when speaking out may harm your cur
by yakshaving_jgt 8y ago
- Many well known people in tech are charlatans.
- There is no integrity in keeping silent when witnessing wrongdoing, even when speaking out may harm your current business prospects.
- Most "interesting" ideas in tech currently simply aren't.
- "Software Craftsmanship" is a scam.
- Programmers are far less logical than they would themselves believe.
- Non-tech project managers in tech teams are beyond useless; they're often plainly harmful to the business.
This is not an exhaustive list, and I didn't learn all these things in the past 12 months. Some have just been beaten into me more over the past year.
- 6ue7nNMEEbHcM 8y agoHey, can you elaborate on '"Software Craftsmanship" is a scam.'?
- yakshaving_jgt 8y agoMuch of what's said in that community is uninteresting and nonsensical. I was super interested in this "movement" for some years and joined many of those events. The trouble is, so much of it is programmers patting themselves on the back for being more "disciplined" than your average working programmer. Before Google, business listing websites competed by being the most disciplined in listing business data — they had humans doing this. Along comes Google and gains a huge advantage by leveraging technology — not human discipline. And we all know who won. Most outspoken Software Craftsmanship proponents eschew technologies like a strong type system à la Haskell in favour of manually-written tests — somehow not realising that you gain most leverage by taking advantage of types, and tests, and other formal verification systems. Furthermore, in my experience, many architectural patterns talked about at these events (onions, ports and adapters, etc) are over-engineered piles of garbage in practice. Wanting to be a better programmer is a good thing, of course. Dogmatically doing TDD (and yes, I write tests!) and adhering to SOLID principles is not the way you go about it.
- spidey1 8y agoSo how do you go about it? I've only been in this field for about 18 months and I'm so overwhelmed by all these conflicting ideas and have no idea where to turn. Do you have any advice for juniors on how to internalise good engineering principles and how to avoid dogma?
- PJDK 8y agoNot the OP, but my advice would be: Read the "classics" - Code Complete, Pragmatic Programmer, Clean Code etc. Google "best books about programming" and you'll find plenty. When you're reading think about the why. You're job is dealing in complexity and there is no one true way. Understand as many of the different ways as possible. If you think an idea is weak, try and figure out a question that exposes the weakness (how does this handle a date before 1970?). Expect that sometimes this question will reveal the idea isn't as weak as you initially expected. Remember you only need to solve the problem that's in front of you. If that problem doesn't seem easy try to break it up into smaller problems. Complicated solutions are often bad solutions. Complicated solutions can be good solutions. Write your code for people to understand. Advice on good writing is often very applicable to code... See Orwell(1), particularly "Break any of these rules sooner than say anything outright barbarous" 1.https://www.writingclasses.com/toolbox/tips-masters/george-orwell-6-questions-6-rules https://www.writingclasses.com/toolbox/tips-masters/george-o...
- yakshaving_jgt 8y ago- Become proficient in Vim or Emacs - Get comfortable on the command line — it's almost a running joke now that modern tools are often outperformed by awk/sed/grep/cut/etc - Go through the book 'Seven Languages in Seven Weeks' — You won't thoroughly learn those seven languages, but you will learn how to learn programming languages - Get good at recognising hype and reducing marketing language to their core ideas. This seems especially applicable in the JavaScript world (though this may just be my confirmation bias speaking) - Get good at accurately defining the problem you intend to solve. This would seem so fundamental that it isn't worth mentioning, but you'd be surprised how often people jump to "Ah! An excuse to play with shiny new framework/tool/languge/whatever" before knowing what it is they're solving Most of these seem quite fundamental, but you go an awful long way in this industry on fundamentals.
- philangist 8y ago- Many well known people in tech are charlatans. I'd love if you could expand on this topic. What do you mean by charlatans?
- Clubber 8y agoI'm not the OP but I would guess it's because most of the tech leaders aren't there because they did something great and are all knowing, but more because they were at the right place at the right time and met the right people. You could replace any of those people with 10,000 other people with similar qualifications and they would do just as well.
- yakshaving_jgt 8y agoPretty much this, with the added nuance of them using social capital (which can be engineered, e.g. Twitter following) and good old-fashioned persuasion as a stand in for real competence. The 'Appeal to Authority' fallacy creates a feedback loop here too. They mislead to gain authority. They use that new authority to gain more opportunities to mislead.
- yakshaving_jgt 8y agoI mean much of their work is building a public profile as a "thought-leader", and making big bucks speaking at conferences and advising large companies when in reality, they have no experience of building anything with the technologies they hype, and often no real technical understanding of those technologies either. I am not saying this is the common case. Naturally, there are many brilliant people in our industry. I am however saying that this happens enough for it to be a concern of mine. As tempting as it is, I won't name names.
- swagtricker 8y agoTaken from http://manifesto.softwarecraftsmanship.org/ http://manifesto.softwarecraftsmanship.org/ "Not only working software, but also well-crafted software Not only responding to change, but also steadily adding value Not only individuals and interactions, but also a community of professionals Not only customer collaboration, but also productive partnerships" I fail to see the "scam" here. Your follow-on comments seem to take issue with some of the popular opinions on how to best accomplish the goals above, but that hardly disqualifies the effort to improve software development as a profession outright as a "scam".
- yakshaving_jgt 8y agoAs I mentioned in another reply, the idea of improving the software skills of myself and my team is absolutely appealing. That's why I started associating with that movement in the first place. I don't disqualify the spirit of that effort. In practice however, it's a different reality. Let's not forget that SC's perhaps most infamous proponent once said that C++ is a "man's language", and that Java is an "oestrogen" language.
- verall 8y agoI'm not familiar with the software craftsmanship "movement", but do you have a link for that? As an embedded/C++ guy I'm disgusted but curious about the context. I feel like C++ is the antithesis to the "manifesto" posted in the parent. I /like/ C++, but it seems to me like it is nearly impossible to write code that is easy to read, easy to change, performant, and correct, all at the same time.
- yakshaving_jgt 8y agohttps://youtu.be/YX3iRjKj7C0?t=8m33s https://youtu.be/YX3iRjKj7C0?t=8m33s
- avensec 8y ago- Many well known people in tech are charlatans. This is something I learned first hand in the previous year. I joined a company that purposely seeks out known entities in a specific space. These are people I've seen do tech-talks and lead meetups. I specifically joined with the idea of mentorship and gleaning as much information as I could. What I learned is that some of the ideas being pitched via tech-talk were actually introducing some of the most convoluted and inefficient practices into the department. I learned that some of those individuals were in untouchable ivory tower positions, and crossing them would cost you your job. I learned that upper-management didn't actually know a damn thing about the space and sought after those known entities to cover that gap and make themselves appear more relevant.