3 ms·
> Thats really important stuff! Based on your previous comment, I don't believe you. You describe your own work as "large projects with novel systems architec
by ZephyrBlu 5y ago
> Thats really important stuff!
Based on your previous comment, I don't believe you.
You describe your own work as "large projects with novel systems architecture". Large (Important), novel (New and difficult) and dealing with architecture (Complicated and important).
You describe other work as "all they're looking for is a warm seat, closed jira tickets and happy customers". Warm seat (Low skill/easily replaceable), jira tickets (No creativity or thinking, just follow the ticket), happy customers (Isn't this important for everyone?).
The difference in tone is massive. It's hard to believe this wasn't intentional.
- josephg 5y agoDo you believe all programming work is equally difficult? I don't. I graduated alongside some people who work on SeL4. They wrote an operating system kernel in Haskell, then used proof systems to formally prove its correctness. Then rewrote the whole thing in C and mathematically proved their C code is equivalent to the haskell code they wrote. The result is an entirely fully formally verified operating system kernel. This has never been done before, and its a massive achievement. Its a first for humanity. I'm not sure I'm smart enough to work there. I certainly don't know enough math. I think most programmers I've worked with throughout my career aren't good enough at programming and math to work there either. I think formally proving the correctness of an OS kernel is more difficult than implementing a B-tree. And implementing a b-tree is more difficult than styling a button in CSS. Knowing how to style a button is a more useful skill. Its important. Its valuable. But I stand by my comment. There are more people who know how to style a button in CSS, and they're given less respect, they're more replaceable and usually less well paid. And for good reason. My friends on the SeL4 team could probably do my job if they wanted to. I don't know if I could do theirs. The fact that most of us in this thread aren't good enough hackers to work on sel4 is something we have to live with. It doesn't make us worse people, or less deserving of love. And it doesn't mean our work isn't valuable. It is. But if all you know how to do is style a button, you are valued less in the jobs market. Some people are actually better at programming than other people. And some jobs in our field are genuinely harder than other jobs. Hard interview questions are asked when they only want someone who's excellent to fill the role. Its absolutely not fair, but thats life.
- MikeDelta 5y agoThe question 'what is a good programmer' comes up regularly, and I've seen answers from 'people who can make stuff that nobody understands' to 'people that make stuff nobody uses' to 'people who make stuff everyone understands and uses'. I guess it depends on how we look at it.
- markus_zhang 5y agoI think the implicit difference between you and the other guy there is: He is implicitly trying to say (just my hunch) that a lot of those leetcode interviews don't land jobs that actually need a lot of algos and data sturcutres but are just glorified CRUD boys. What you are saying is that some jobs are indeed very hard and need some screening during interview to weed out inadequately educated candidates. I, as a hobbyist, actually agree with you. Hobbyists like us can learn whatever we want to learn, and usually we pick tough topics (for God's sake why would I learn to make a button?) such as compilers, algorithms, operating systems, database systems and such over web development and CRUD, because the formal topics have more FUN, and we don't care about real usage (this is different from you guys -- we don't care if our toy OS get used by anyone else :D). Damn I'd die for such jobs if they can withstand my stupidity and teach me :D
- pasabagi 5y agoI think there is a certain lack of imagination you show when you say that having a good, immediately reference able working knowledge of general data structures is a prerequisite of being a good programmer. I'm not a particularly good programmer, but I think I would never be particularly good in your estimation, because I generally remember where I read something, rather than the matter in detail. This is obviously more efficient, as you always have books available when you're doing actual work, but isn't always that great for extremely broad quizzes over a broad range of subjects.
- josephg 5y ago> This is obviously more efficient, as you always have books available when you're doing actual work To be clear, I look stuff up all the time too. But the downside of the “I can look it up” approach is that if you don’t have an intuitive grasp on various algorithms, you can’t use those algorithms as building blocks to make something else. Recently I took a btree and instead of using it an associative array I used it as a list of spans. The result let me do arbitrary inserts and deletes at arbitrary locations without linear scanning (like in a linked list) or shuffling other elements around (like in an array). Most people can’t do that. But that’s ok - you can be an excellent product engineer without this weird knack I have. It doesn’t help me write clean CSS. In some ways it makes me actively worse at my job. I did some client work a few years ago. I helped write an indexing system for the search box on their website. I wrote a real-time indexer which streamed changes. After I left I got feedback that nobody at the company was able to maintain the code I wrote, because they couldn’t understand how it worked. I should have just written a simple bulk indexer for them in a cron job instead of getting clever with it. My “good programmer” instincts made me a worse contributor on their team.