Earlier quoted context omitted.
I guess it depends who you work for. I prefer to work at small new companies until they get off the ground. Then I shift to the next small new company. Small meaning < 30 employees for the whole organization. Pay isn't as great, and the work is definitely more under pressure, but I find that the only thing expected of me is quality work. I don't have to worry about trying to climb ladders or schmoozing management. I…
I actually tried them all, ranging from megacorps that were darlings of techies and Wall Street to nimble startups with amazing tech. It was politics everywhere, at startups even more nepotistic/cronyistic than in megacorps (e.g. seeing a wife of a cofounder and CEO wasting money on getting selfies with some marketing pseudo-celebrities instead of doing real marketing, and knowing I can't say a word because she basic…
Ask HN: For those programming 10+ years, what do you wish you knew 4 years in?
511–520 of 538 posts
Re: Ask HN: For those programming 10+ years, what do you wish you knew 4 years in?
#512Sitting in front of a computer 60+ hours a week is not great for your body. Take the time to understand good ergonomics, buy yourself a great keyboard (like the Kinesis Advantage), and ditch QWERTY.
> Sitting in front of a computer 60+ hours a week is not great for your body. The next sentence should be: So don't fucking do that . You do your family, your employer, your coworkers, and most importantly yourself no favors by working 60 hours a week in front of a screen. It doesn't matter if you're working for yourself or someone else. If you think otherwise, you've been brainwashed.
Re: Ask HN: For those programming 10+ years, what do you wish you knew 4 years in?
#513Earlier quoted context omitted.
Why?
Lisp is by far the most powerful programming language out there. In fact, Lisp is not a language, it is more a philosophy: - If a language's syntax is written using an structure that the language itself can easily manipulate, - in such a way that the source code can generate new source code, using the full power of the language (no restrictions), - in a easy-to-program, straightforward way, ... then you practically h…
I don't doubt lisp is fun and easy to write, but power doesn't have much say when it comes to refactoring. That's where convention wins out. How is refactoring 10k lines of lisp?
Re: Ask HN: For those programming 10+ years, what do you wish you knew 4 years in?
#514I have been developing professionally for 20 years and I'm in my early 40s. What I've learned: * Salary compression is real: most companies are not going to keep giving you raises to match what the market would give you for your skills. They would rather you leave and take all of the institutional knowledge with you than pay you the amount you could get elsewhere. Even if that means hiring someone else at market valu…
> Titles are B.S. but people listen to developers with "architect" as part of their title. I would be careful with this advice. It might get you a cushy job and a higher salary at bad companies, but I think it's bad for your career in the long run. In my experience most "architects" don't do any real work while cooking up a bunch of "best-practices" that sound good in a vacuum but either fail completely or create a b…
I would rather be called a "lead" than "principal". A "principal" is seen as an individual contributor, an "architect" is also usually an individual contributor but could also be someone who interacts with various departments to get stuff done.
Re: Ask HN: For those programming 10+ years, what do you wish you knew 4 years in?
#515Earlier quoted context omitted.
Lisp is by far the most powerful programming language out there. In fact, Lisp is not a language, it is more a philosophy: - If a language's syntax is written using an structure that the language itself can easily manipulate, - in such a way that the source code can generate new source code, using the full power of the language (no restrictions), - in a easy-to-program, straightforward way, ... then you practically h…
I understand that lisp has power but I remain unconvinced that power in any way correlates to writing better programs. A lot of the utility that e.g. static typing provides is a sort of convention of how to write code such that we can then use tools to do the mundane work of verifying that our code is accurate or refactoring it. In other words, lack of power makes code note maintainable. I don't doubt lisp is fun and…
Lisp compilers provide diagnostics about code; it's just those diagnostics aren't the arbiter of whether or not something gets to execute.
Re: Ask HN: For those programming 10+ years, what do you wish you knew 4 years in?
#516I have been developing professionally for 20 years and I'm in my early 40s. What I've learned: * Salary compression is real: most companies are not going to keep giving you raises to match what the market would give you for your skills. They would rather you leave and take all of the institutional knowledge with you than pay you the amount you could get elsewhere. Even if that means hiring someone else at market valu…
All good advice. After about the same amount of time, I am seeing things from the other side -- that of the manager / employer. I have had quite a few employees who came to me and sheepishly told me they were accepting another offer. In every case, my response has been "Congratulations!" and it's sincere because these people are also my friends. I want them to win! As their manager, part of my job is to provide an en…
A manager once asked a director for a training budget for his employees.
His director asked "what if you train then and they leave?"
The manager replied, "what if we don't and they stay?"
Re: Ask HN: For those programming 10+ years, what do you wish you knew 4 years in?
#517Earlier quoted context omitted.
Why?
I'm no expert in Lisp, but I'll hazard an answer. Compared to modern languages, Lisp is uncomplicated and follows a small coherent set of principles that allow the writing of code to flow . In contrast, coding with objects is inherently constipated -- so much of the language's state and organization is hidden you don't tend to remember where it's all been tucked away. I find myself unable to employ natural idioms as…
Re: Ask HN: For those programming 10+ years, what do you wish you knew 4 years in?
#518Since we read code more often than we write it, put a little extra effort into making your code easier to understand.
Re: Ask HN: For those programming 10+ years, what do you wish you knew 4 years in?
#519Earlier quoted context omitted.
Tests and TDD are different things. I view TDD as a workaround for a lack of a REPL. When the code is finished, the tests can be written or polished but writing them before any code is just one variation of testing.
The point of TDD is you can define the behavior before writing the code. ie. you define the expected result: def test_sum(): assert sum(1, 2, 3) == 6 def test_sum_no_args(): assert sum() == 0 def test_sum_negatives(): assert sum(-1, -2) == -3 etc, and then you write the function. This means you only do the "REPL" testing once ever for each case - and you can rerun the tests for all future changes. If ever type the sa…
I'd say that's a pretty broad brush you're painting there with
Re: Ask HN: For those programming 10+ years, what do you wish you knew 4 years in?
#520Earlier quoted context omitted.
Interesting! I switch very early in my career to working for product companies because I saw no other way to have a rewarding career as developer. So far it's worked out pretty well for me. However, recently I read Developer Hegemony[0], which seems to describe a path for IT developers to also have rewarding careers. My current thinking is that the Agile philosophy definitely contributes both to successful projects a…
The problem being that no one can actually define what agile actually is. (Or rather everyone can, but there is no consistent definition).
However, I do think that the original signers of the manifesto were onto something. My recommendation for people is, rather than learning an official methodology, that they go and read the writings of the various different signers. Get an understanding of what it meant for them at the time that they signed the manifesto.
Martin Fowler has commented that one of the other names they thought about calling their movement was "conversational software", in the sense that software development process was an ongoing conversation between the developers and the users of the system.
The point I gleaned from the book I mentioned was that (in the general case) the power politics of most IT organizations prevents the development process from every being a real conversation.
As I understand it, many of the signers were independent consultants at the time of signing (or helped lead IT consultancies) and could speak the language of business. It seems to me that perhaps this put them in a more "peer" relationship with the business stakeholders, and allowed the development approach to be more conversational.