Ask HN: What skill do you want to develop or improve in 2024?
Inspired by a similar thread asked a year ago: https://news.ycombinator.com/item?id=33873800
I'm thinking to split my online learning in two parts: marketable skills (1) and just-for-fun skills (2).
For (1), I am thinking to go through as many of Andrew Ng's deep learning courses as I can. With AI developing at such a fast rate, it would be beneficial to know how it works underneath.
For (2), I'm thinking to go through a raytracing course and some basic VFX courses on Blender. Possibly something about storytelling as well. 1) Networking: While I don't plan to do much home networking, knowing fundamentals would be helpful to my day to day. So I'm going to go through Computer Networking: A Top Down Approach (https://gaia.cs.umass.edu/kurose_ross/index.php) and augment it with CS 144 (https://www.scs.stanford.edu/10au-cs144/). 2) SQL: As another user mentioned, while I am primarily a FE, there are times when I need to work on the backend and having a shaky understanding of SQL can be a major stumbling block. I might start a bookclub in my city or at work just to ensure I'm consistent with learning. 3) C++/Rust: Will probably do a basic project and may hire a code mentor to do some code reviews/guidance. Online practice on Stratascratch is good for SQL (SQLbolt and SQLzoo for the basics) ... Pavlo, Widom, Date for CS of database systems. What platform do you use to hire code mentors? I would be grateful if you shared any past experiences with them. My wife bought me a software defined radio kit for Christmas. I want to learn how to use it with a longer term goal of using it to pull down images from weather satellites like I’ve seen others do on YouTube 1. I've been dabbling in Japanese for while. It's time to get serious and pass the Japanese Language Proficiency test, even if at the lowest level. 2. Piano. While I can play some simple degree, I have a large bucket list of more complex pieces. I want to play three of them this coming year. I used these flash cards to great success while studying Japanese and preparing for the JLPT. https://whiterabbitpress.com/kanji-flashcards/ Art of all kinds. I started piano over Covid and have gotten pretty decent. Would like to continue improving on that. Some kind of visual art. I have enjoyed making some pixel art and got a drawing kit for christmas. I have written fragments of a dozen stories and used to write poetry regularly. Would like to finish something. I’m taking a New Year’s Resolution to remove as many subscriptions from my life as possible. So… I’ll be working on making a solid homelab again. Synology NAS, docker containers, and Tailscale (or headscale). Trust me on this. > Synology NAS Which one to get since there is a whole bunch of options/models ? I recommend any of the plus series models (units with + at the end of the name; ex: DS1522+). They typically have better processors and support more features than their non-plus counterparts. 1. AI/ML stuff. I'm very much of the "let's get stuff shipped" persuasion, but also like to understand the basics. So, no deep math here, but, incremental building blocks, focussing on how to deploy and maintain applications
2. Gardening: we bought a house with a sizeable plot of land. Want to get better at managing it. Grow some stuff, build some stuff. Focus on permaculture, and working within the parameters of our environment. You'd be surprised how much ML is like gardening and unlike engineering. It's a lot of fiddling with parameters, a lot of waiting, and a lot of surprising outcomes. Pain-free running. Have had achilles issues for a few months I never really addressed, but want to get rid of this year. Goal is to run 5km without pain the next day by following a daily protocol of isometric and isotonic exercises. Piano playing: Improve my playing by working through Alfred's Adult Piano books no. 3. Here, again, RSI is the biggest issue I'm facing. Planning my life. While I'm extremely organized at work, this never transfered to my private life. I recently introduced weekly sessions to plan everything from exercise to events I want to attend, to reoccurring household chores like refilling dishwasher salt once a month. I was running with the dogs and fell forward and stress fractured both elbows (using hands to not land on face). That was a couple months ago, so I'm mostly healed, but I want to improve both flexibility and strength. At 40, I didn't think this kind of injury from a fall was a thing quite yet. Imo add balance to the list. Balance practice can be weird, but helps a lot in preventing falls (along with strength, also necessary). There's a lot of balance exercises out there which will seem like they're too "easy", and that may be because it's focused on like 80 year olds. If you find it too easy you can do stuff that they do for e.g. 3p rifle (a sport which is a majority about just standing there perfectly balanced): https://www.issf-sports.org/news.ashx?newsid=3215 (Don't dig too deep into that route though because it will quickly get hyper focused on the meta of 3p. E.g. if you find yourself looking at MEC or Heinz Reinkemeier through looking for balance exercises, you've probably gone past the point where it's useful for general balance exercises lol) In this specific case, it was a dog running under my feet and me not wanting to stomp on her. But my balance has never been great -- also, as mentioned, interested in general stuff as I age -- so I'll definitely research that, too, thanks! Go slowly. I started stretching my hamstrings a few weeks ago to work on flexibility, ramped it up too fast, and now I have lower back pain :( Had similar issues. Not necessarily that you went too fast, but that you didn’t also give attention to your back and abs. Weak abs can cause back pain. Muscle starts to atrophy naturally after 40. If you don't counteract it with some strength training, things get bad. I'm trying to get into lower-level programming, especially kernel code. Unfortunately, since I'd prefer to be able to modify existing systems this means (re)learning C, but that's what everything is written in so that's how it is. Check Theseus OS. It’s very new but very exciting too. I recently obtained my amateur radio license and I'm looking to start using it next year. I'm particularly excited to participate in ionosphere sounding studies that use ham radio during the North American eclipse in April. Check out the WSPR beacon and other kits at https://qrp-labs.com, great stuff for the radio amateur. I have built most of their kits, and the owner is a fantastic fellow. Nice! I also got my ham radio license a couple of months ago. Haven't really done anything with it yet, but it was fun and interesting to study for. Other than the eclipse, what other kind of things are you planning on doing with your license? Awesome! I'll see you over at the HamSci forums. I'm wanting to put serious effort into getting better at illustration, specifically figure illustration. I'm also planning to continue getting better at piano. For your second goal, if you're referring to implementing your own ray tracer I highly recommend the Ray Tracing in One Weekend series: https://raytracing.github.io/ 1) SQL
As a mainly frontend engineer I just haven't had a whole lot of exposure, but always experience friction against it while doing side projects. 2) Woodworking After finally diving in earlier this year, really took to it as a nice break from screens. Taking this winter break to organize my garage and set up proper dust collection so I can stop creating layers of sawdust in my garage (and probably my lungs). I would love to pick something up off screen this year as well. When I was a kid, I would hang out with my grandfather in his shop, melting and casting metal. But if I wanted to pick that up now, I'm not even sure where or how I could. Most classes are about smithing, which isn't exactly what I want. So, short of finding a time machine to go back to 1992, I suppose I'll figure out how to start on this goal. I took a single DB class in college and it has put me head and shoulders above my average SWE peers for the last ten years or so. Having a basic concept of what normalization is and how to apply it, and what level of normalization is practical in a project at your work’s scale, is super important and helpful. Learning just a small amount of theory can really help! 1) Japanese, it's a survival skill for me now, moved to Japan a little bit more than a year ago, only to find out my friend lied to me, they don't speak English here; 2) C/Rust, career development requirement, we have some codebase without maintainer, I want to take them over; 3) Deepen my knowledge in cognitive sciences, explore memory and attention. Cloud computing (especially AWS). I've spent the last decade working on application software and am increasing worried how many jobs expect cloud experience these days as I have none. If you are just starting out, i highly recommend Cloud Computing for Science and Engineering by Ian Foster et al. - https://cloud4scieng.org/ It gives a comprehensive overview of the Cloud Architecture, the various pieces involved and how they all work together. The whole "Cloud Technologies" field is quite vast and overwhelming and this book provides a nice comprehensible roadmap. Thanks so much for this. I've been finding it hard to separate useful resources from the salesy/hypefilled pieces so recommendations like this are very helpful. I've never had a problem with programming languages – I'd pick up a book, do the exercises, play around with the language and get a feel – but I find "cloud" hard to get into for some reason. > but I find "cloud" hard to get into for some reason This is because there are too many moving pieces in the System. Add the domain jargon and intentional marketing/sales obfuscation and everything becomes overwhelming. I have a background in Applications/Networking/Protocols and i still find the whole "Cloud" domain confusing/difficult. After doing some research i came across this book which was very helpful for my own study. It gives you the overall "big picture view" along with some short code/usage snippets for each component. You can then followup with specific AWS/GCP/Azure books as needed. You should also study Martin Kleppmann's Designing Data-Intensive Applications along with this - https://dataintensive.net/ - Reading math textbooks effectively. Want to revisit postgraduate math, just as a goal in itself, with no specific endpoint; more productively this time around, with less yak-shaving and distraction. And, not just going through the motions of solving exercises, but getting better at thinking, formulating new ideas from scratch, and applying/translating things to computational software - Profiling and optimizing software. To get better at using tools and efficient workflows, and to get better intuition, to be more efficient at finding low-hanging fruit - In support of these goals: time management, and figuring how to live correctly, and avoid time-wasting neurotransmitter traps such as HN - Skateboarding I'm trying to break my year into quarters this time, and go all-in on one thing for each three month period. Q1 is all about going beyond C1 in French. Concretely, I want to be able to listen to podcasts at 1.5x like I do in English, or be able to run product discovery calls. (I'm running my first one in French in a couple of weeks, so I'll have a baseline. Ironically, the main problem might be not knowing which English terms to leave in!) Later in the year, I'd like to give a go at programming more. To show how little I've done, I recently fired up Webstorm on my home computer and realized it was still on version 2021.1! 1) Sales. Co-founded a B2B startup, so this is now a pressing concern, and as a long-time developer it’s one of those things that gives me hives, where I barely even know how to start (got lots of research to do!). It’s going to be -the- challenge of 2024 for me. 2) How to build an OS (in Rust). I’ve seen a few different articles in HN over the years and kept them bookmarked because I think it’ll be a lot of fun to actually make something from scratch and get to have fun with figuring out how it all comes together. How does one even draw stuff on screen from scratch? I’ll get to find out. For 2: Apparently it's broken at the moment, but https://wiki.osdev.org/ is an amazing resource. It's incredibly satisfying to boot into your own multitasking kernel. Back when I did it back in the late 1900s there were a lot fewer resources like this, and a lot more just working it out from Intel manuals. It's a lot of fun, and teaches you a lot. I did the same - booted my own multi-tasking OS in x86 assembly, with osdev.org and alt.os.development being extremely helpful! ... but did you have to call it the 1900s LOL :) I could have called it the late 1000s. :-) Presenting stuff/ideas. I kind of have established my own powerpoint style over the years and seek to further improve my presentation skills. Happy for any good advice.
ps.: and i despise pp You might find the following useful : Visual Understanding Environment - https://vue.tufts.edu/ Came across this in another thread recently - https://quarto.org/ You've probably seen Seth Godin's Really Bad Powerpoint from 20+ years ago, but just in case: Try LaTeX with Beamer and/or reveal.js. (Also, Beamer's manual is full of good advice on presentations irrespective of the tool you use.) Thx. I use LaTex occasionally but have to stick with pp. Looking to improve my non technical communication skills. The beamer package manual had nice hints, like ~1 page just about font size. With statements like > In beamer, the default sizes of the fonts are chosen in a way that makes it difficult to fit “too much”
onto a slide. Many of the ideas apply outside of latex/beamer. It's one of the better free documents about the technical aspects of slides. At least if the presentation is still driven by content on the slides, but that decision is a whole different story. That's why I mentioned Beamer's docs. There is a very good tool-agnostic chapter in them. Looked it up. You mean the chapter „Guidelines for Creating Presentation“? Yes. It's full of wisdom and humor. ;-) I loved especially this gem: > Never, ever reuse a paper abstract for a presentation, except if the abstract is “We show P = NP” or “We show P ≠ NP”. Any chance to achieve similar results with goold old (new) PowerPoint? Typst with Polylux (inspired by Beamer) is a nice alternative. Anglo concertina. I've always been a half-baked instrumentalist because I rely too much on my singing to do the heavy lifting. This year is gonna be about building up my instrumental repertoire to a point where I can do sets/shows with just my concertina. By the end of the year, I want to be able to do a full street performance with my concertina (and actually be entertaining.) 1) UI Design. I’d love to learn how to build apps that are aesthetically pleasing. 2) Computers. This year I’m making an effort to work through the NAND to Tetris course. I’ve always wanted to learn how computers work from the ground up. 3) Spanish. I had a strong start learning Spanish this year but haven’t been as consistent. I’m aiming to become conversationally fluent next year. Nand2tetris is absolutely great, I cannot recommend it enough. 1) 1.1. Improve in distributed systems (a. Read: Designing Data Intensive Applications, b. Learn TLA+) 2.1. Observabilibity (a: Read: Systems Performance, b.Learn Graphana, Prometheus...) 2) 2.1. Python stuff, for example, thinks to help with my stocks. 2.2. Sports: gym, running, walking, swimming... 2.3. Reading classic novels. 2.4. Travel with my family. Right now I’m focusing on fun, health and mindset rather than just work and making bank Learn enough Verilog/VHDL/RTL to design a chip, and get it through the Google chip shuttle. Become proficient enough with CoPilot and Python to write the code required to support said chip. Time management. Between the job and three little kids, there hasn't been much time at all for any leisure time activity in 2023, unfortunately. The best book I've read on the topic is "Four Thousand Weeks: Time and How to Use It by Oliver Burkeman". I do realize the irony of recommending that you set aside time to read a book. Both for marketable and fun skills: I've started working on learning Spring Boot, Microservices, Docker, and Kafka. I'm hoping to understand how to use these tools over the next year. I'm no stranger to distributed computing, I've just never used these tools before so I'm hoping I can learn how to combine these together with a personal project. Now that I have a working GNU Radio-like base framework in Rust, I want to improve my understanding of DSP by implementing it. Like my current question, what actually is the best way to "smoothen" the feedback loop in clock recovery? PID, IIR, FIR? And why? Time/Task management. I always feel like I'm barely keeping up with my life and I don't use my time intentionally. More Rust, and Neovim as IDE (per a YouTube video that was posted on HN some weeks or months ago). It seems like other IDEs that are attractive to me always manage to pull the rug out eventually, in one way or another (sudden bad performance, deprecations of things I use, or cutting support on my OS for the language/s I prefer). > sudden bad performance nvim is great, and I use it as my daily driver, but bear in mind nearly everything in a modern config is controlled by Lua, which is one of the worst-performing languages on the planet today. "Sudden bad performance" is still a thing in the neovim world. Check out Lapce. An improvement over nvim imo. Maybe the ecosystem is not as mature though. I want to learn more about AVL equipment and tools. I have joined the technology committee at my church, and we're using a whole bunch of audio and video equipment I've never been exposed to before, like digital mixers, microphones, propresenter, SDI and Dante, etc etc etc. I want to level up my coding and work on really complex software projects. Gems like puma and async (ruby gems). I also want to learn more about compilers and more about the computer. My plan is to read SICP and also start contributing to these projects that I mentioned above. I have basically the same goal. I've been script-kiddying since my early teens (getting close to 30 now) and I want to finally make some stuff. Been learning C and I'm about to start with Common Lisp. I don't know if it counts, but actually I will improve my physical skills. Learning to lift heavy, improve balance and coordination. In addition to that I want to become much better with my motorcycle handling in such as slow speed, dodging, balance etc. Public speaking and communication. I joined my local toastmasters and we meet in person every week. I want to give atleast 1-2 speeches a month (5-7min) and get comfortable with speaking in front of people. Calculus and more DSA. Also want to build something in Rust. For fun: EMT class starts in Jan For money: WebGPU and WASM for running client side satellite propagation models Finish the Tai Chi sword form (as in remembering the forms in detail).
Start with the staff. Calisthenics 1. Presenting/public speaking
2. Frontend development
3. Mobile app development - Get better at calisthenics - Get better at CS. Very broad but there's a lot to learn. - Managing skills Clojure for both (1) and (2), and playing the flageolet for (2) only. Project planning in the face of uncertainty. Any help/pointers are welcome! Create a plan, and replan every day. You might find inspiration in
https://en.m.wikipedia.org/wiki/Model_predictive_control ai/ml and python Proper profiling. Drawing and painting Tango Spanish :)