Ask HN: What are you learning in 2019?
Feeling a little too comfortable where I'm at now. In the last couple years I had some side projects in distributed systems.
Those were fun, learned a new language, came to the conclusion that Go is overhyped and immature and helped me appreciate that Java ain't that bad after all. Feel like the project did help me be a better developer, understand load balancing, databases, storage systems etc better.
What new tech have y'all learned in the past 6 months - 1yr that you found to have made you a better developer?
221 comments
[ 4.4 ms ] story [ 190 ms ] threadSo, I decided to make my own neural net in C#. For fun, it'll never be released. I spent a solid month learning anything and everything I could about how brains work in the animal kingdom. Then I built out a neural net according to what I learned. My cells aren't really similar to most of the conventional types out there. But it does work fairly well with numerical data. If I spent more time, like a solid year instead of spare time over 2 months, I think it could be respectable.
What I really learned from this project was optimization to the extreme. I spent a hell of a lot of time testing different ways to accomplish the same math and pull out as much performance as possible. I'd guess for every hour of code, I spent 4 or 5 hours research, testing and optimizing. Mostly because it's all CPU instead of GPU. I never got into cuda and I never will. It's not like I've never optimized before. The difference now, I spent time finding out if conventional wisdom was correct. Also, I discovered a bunch of methods in C# that I never knew about.
I dont do development anymore for work (and God willing, never will), so this was just a distraction/curiosity project for me. In reality, I wish I took the time early on in my career to do a project like this. Anyone fresh in dev needs to do a 3 to 6 month pure optimization project learning, for themselves, what works and what doesn't. Conventional wisdom really is only the tip of the iceberg.
My recommendation though, it must be kept neat and tidy. 100%. Plus, keep paper notes. It gets complex real fast. Spend your time on good naming conventions and being VERY well organized. Obviously all projects should be that way. But this is one where it's not really a recommendation. It's a flat out must. Don't fall into the trap of "hacking" in something to make it work. Not even once. If something is wrong, fix it completely the moment you notice it. My experience, neural net hacks compound really fast into trouble.
Plus, I had fun with my naming conventions. My hidden layer cell class is called a "centralized understanding neural tracker" with the input cells called "data input command kontroller". As you can tell, I'm not a very mature adult. Pretty sure it wouldn't be appreciated in github.
Literally, all I did was second guess every line of code and operation I put down. I would try to think of alternatives and research for alternatives. Then test them in their basic forms. It's just grinding work with a giant spreadsheet, nothing special.
There aren’t many Python jobs around here, but there are some. Not that I’m currently looking, but the next time I am, it would be nice to work with a language I actually like.
In no particular order:
https://github.com/GoogleContainerTools/skaffold
https://github.com/garden-io/garden
https://github.com/windmilleng/tilt
It's about 9 years old I think, but it's been very enjoyable
Earlier this year I embarked on a project to help me learn how CPUs work, I ended up implementing simulator for a simple CPU from the "But how do it know?" book - I have a blog post about it if anyone is interested.
Since then I've been dabbling with learning about RISCV, but it's been slow progress.
I started reading 'But How Do It Know' a while back; I never finished it but I can say that it was a very fun read.
I've heard that 'From Nand to Tetris' [0] is also quite a worthwhile read. A quick look shows that it not only has a link to a book [1] but also some freely available notes/lectures as well as some exercises.
[0] - https://www.nand2tetris.org
[1] - https://mitpress.mit.edu/books/elements-computing-systems
Blog post is here:
https://medium.com/swlh/i-dont-know-how-cpus-work-so-i-simul...
non medium link: https://djhworld.github.io/post/2019/05/21/i-dont-know-how-c...
Coming from a career in Android/Java/Kotlin. The new planned skills are to enable completion of projects I have in mind.
Trying to start your own ml research project. It's pretty hard especially when you don't have any formal credentials or training.
Is there anyone else here who's been doing ml research without a degree in ml?
But I work with C++ developers who are adamantly opposed to taking a jump because rust is harder for them to grok (as they suggest that they have to unlearn patterns).
Rust feels like a well designed language and ecosystem so far and I think it learned the lessons where other have failed.
Many, many companies, including big ones, are using Rust in production. They don't need to re-write things.
https://trello.com/b/cu32qF3q
The cards that I assigned to myself I am learning now.
Trello is great as by pressing Q I can only see the cards I have assigned to myself and focus in on learning them.
I've experimented with Trello in the past for this, but I always just ended up with a massive list on the board and spent an unreasonable amount of time antagonising over when cards should be considered finished.
Might be easy for "learn how to do X", but more difficult for broad topics like "learn rust"
I will move this list there as it will have much better integration as LA will have a knowledge graph in which I can simply mark topics as learned to learn and mark my proficiency in them.
For now, I just mark topics as learned when I feel comfortable in the topic.
Product Management - Because it is challenging
Security - App, Asset, Container. Because it is a must
EDIT: OP just added line breaks. Imagine the same post without them.
Tips from Emotional Intelligence 2.0 http://redgreenrepeat.com/2019/07/12/tips-i-got-from-emotion...
Lessons from company's internal Emotional Intelligence training (from EIExperience.com) http://redgreenrepeat.com/2019/07/19/debrief-emotional-intel...
Biggest win so far: hearing my wife say to me "Sorry I got emotional."
Maybe I'm misunderstanding, but having someone else apologise for their emotions doesn't sound like an EQ win to me.
Usually, in any heated situation, I would get tense and cause the situation to escalate out of control. After cooling off, I would be apologizing to her for my behavior in the situation.
In our time together (over a decade now) - she never apologized to me for her behavior.
The fact she did twice recently feels like a shock to me because it's so unusual for me.
It's an EQ win in the sense that I didn't lose my cool as usual.
Hope that adds context.