385 karma · joined August 25, 2016
- Algorithms and Data Structures
- Operating Systems
There are more but it helps to at least learn the fundamentals of these two. If you feel up to it, there are these too:
- Computer Organisation
- Compilers
There are more which you could look at depending on your interests: Computer Networks, Computer Graphics, Databases, Computer Architecture, Programming Languages, Theory of Computation, Distributed Systems
Many of these can be learnt from a good online course or a good textbook
Besides these, I found it very helpful to try and contributed to big free software projects. The standards are high and you'll get a lot of feedback on your patches. If you pick a project like something by Mozilla, you'll also have bugs/tasks specifically earmarked for people who are new contributors.
I forgot to add: Reading good code really helps. However, for this, I found that the most effective way was to try and fix a bug or add a feature which leads again to my suggestion above. This way, you have a 'purpose' with which you read code and it helps navigate a large codebase.
Good luck!
- The Lord of The Rings
- The Hobbit
- Dracula
- The Little Prince
- Animal Farm
- Asterix and Obelix comicbooks
- Siddhartha
For the next time, I'm going to try "Necronmicon" (H. P. Lovecraft!)
(EDIT: Formatting and added "Siddhartha")
At work, I have a laptop which is attached to a docking station which has a proper keybaord and two monitors connected to it. I almost never take it out of the docking station. I asked for a desktop but the official policy is to only hand people laptops.
I'll list a few of the things he did that really kept me (and everyone else in his team(s)) driven. I was about to say 'motivated' but it doesn't seem to express the intensity as well as 'driven' does.
Here are some of them:
- Was involved in hiring for his team and trusted whom he hired
- He set up 'connections' in such a way that the new folks were always being mentored by people of varying levels of tenure and seniority. This wasn't a direct "so and so will mentor you". It was more that he set up the dependencies and interactions in ways that there was a gradient on which you could keep going to gain further and further expertise from people.
- Was politically adept. His teams never encountered any rubbish that was irrelevant or would slow them down. He would say "if that doesn't work, I know which buttons to press" and he'd make things happen.
- Where I work now, I have to justify before _and_ after going to a tech conference. When I was working with him, he was like "there is this conference. XYZ is visiting there and I need your_teammate and you to help him with some logistics - just take the hardware from your team. I realised after a long time that this was his way of connecting us to XYZ (who's a veteran and highly respected person in the industry) and it was a golden opportunity. He strongly believed in having people who work in different countries and offices getting to meet now and then and would find excuses to make them happen.
- If we messed up, we'd go to him and say "We messed up! This is what happened..." and he'd just say that it wasn't something to worry about and would instead ask about things that were more 'big picture' and 'long term'. This only made us even more resolved never to sully his teams' reputation.
- I once asked for access to the codebase of a project I was interested in to see if I could port it to another OS. Instead of doing that, he instead connected me to the team who worked on that project and asked them to see if I could help them. Again, he was connecting people and giving me much more than I had asked for.
- He was a visionary and would always speak about his vision in a very matter of fact manner instead of making it a grand thing. So, it made it easier to believe in it and think about it.
- He always maintained that he didn't believe in managers who "just manage" - i.e someone without a sound technical understanding of what we were working on, could never be a manager in one of his teams.
There are many more things and for the moment I'll end the list there.
I realise now that no amount of 'process' can generate this kind of drive in people. I hope that some day I can grow up to be 1% as good as he is.
People follow leaders who free them from chains - they don't thrive in systems which artificially-constrain them.
Also, doing it this way, it was an easy ritual -> brush teeth, shower, lie in bed and read, feel tired and can't focus anymore, set book aside, turn off bedside lamp and close your eyes and fall asleep quickly. This adds up to a lot of reading over the months and years.
The language takes a lot of flak but I think it is quite good given the constraints it has and the modern version is an amazing leap forward in ease of use as well.
has to pepper it with such a generous dose of disclaimers about not taking sides with the accused.
I do hope that over time people are able to have a rational discussion on such subjects without needing these disclaimers for fear of damage to their own reputations.
I'll clarify again that I've not stated which side of the fence I'm on when it comes to who should go to prison and what prison's purpose is. I was just saying that as a rational being, if you end up in prison and do _not_ want to be in prison after you are out, you should do something about it and not expect that doing the same thing will not have the same result again.
As for the hypothetical truck driver, I was trying to say that, in such a situation, saying "I have right of way" and just going ahead is not going to save you from the accident. Though, at that point, it is unfair to you, it is still the safer option to let the truck pass. How much effort one is willing to put into doing something about the errant truck driver depends on the individual who's experiencing this and his/her circumstances.
This has nothing to do with whether the law is good/fair etc.
Even if you the have right of way at an intersection, wouldn't you wait for the truck to pass if you see that it has no intention (and/or chance) of stopping to let you pass?