2. GraphQL - Typed, structured API.
3. https://en.wikipedia.org/wiki/Attachment_theory: A very powerful tool to explain human behavior. It can explain individual personal interactions, personal and professional relationships, family systems and many bigger picture things.
4. How to build desktops: Build times are way way faster on desktop CPUs. More control over motherboard / getting faster IO, further improving buildtimes. More upgradeable, things can be switched out, whereas with laptops everything is soldered together.
5. Language practice: Started tapes on Polish / Ukrainian. Restarting Chinese soon.
6. Basic fitness things / more exercises
More about the album:
”Although many were quick to dismiss Milla for attempting to crossover into yet another industry (she has since gone on to headline the Resident Evil film franchise and continues to record music independently), The Divine Comedy stands as one of the best lost pop albums of the '90s.”
I am currently awaiting approval to sell an editor plugin on the Unity store which I spent some free time working on as a side project. In game level design, most artists make use of 'modular' assets to some extent. These are small sections of a structure e.g. a corner wall section or a roof section, which can be combined together to make endless variations on a building style. The plugin I made allows you to specify 'sockets' on each modular asset, including a type and compatibility system, then it handles automatic snapping together of assets in the editor. This speeds up a assembly of modular assets significantly. The alternative, old fashioned way of doing this is 'vertex snapping' which is tedious and time consuming.
Video here: https://youtu.be/MvYTbIU1d-c
It looks more like Adobe/Macromedia Flash as IDE, used to like that very much back in the days, till flash died due to plugin need / proprietary / security.
Would still prefer to ship an app in a single file, that progressively streams, just as SWF used to do. Now, in the web area, all is utter crap, one billion files to download, CDNs, fallbacks, signatures.... argh!
Heck, would choose VB or Delphi as IDE for building apps in no time against all this React / Angular / WebComponents tech salad with no substance and ephemeral lifespan.
I am still able to compile pascal code from 1997 in Lazarus / FPC.
Regarding the development environment, yes it's very integrated and isolated. For me this was a bit of a culture shock as I generally prefer working with text rather than IDEs, but I've gotten fairly well acclimatised to it now.
Yet it produces native apps as well as WebGL.
An infinity of tutorials exist in as many qualities so learning resources of every level are hyper abundant from gradual to accelerated. A passable 2D app is probably possible in a few days starting from zero knowledge. But a impressive 3D game will take mastery of quite a range of its abilities and probably require a team.
Since it is not dependent on a proprietary player, it probably has more staying power than Macromedia/Flash but it does have competition from Unreal which I imagine is a viable alternative.
Haven’t touched Unity since... even though I’d love to make games. I’m partly afraid of future maintainability of my projects, but there is a potential future where 3D engines converge on a standard... maybe never.
Several obvious conclusions can be drawn:
1) I am an idiot
2) I am using the wrong training material
3) Unity3D is just not for me.
I am hoping it is #2, so I ask what path did you use to learn Unity3D?
First thing to really wrap your head around is 'what is a GameObject'. A GameObject is just an entity that exists at runtime in the game world and has things called 'Components' attached to it. The simplest possible GameObject has only one component, called a Transform. This is simply a stateful record of the GameObject's position, rotation and scale. You can expect to write lots of code that involves manipulating Transforms.
There are components for everything. Want your GameObject to have a visual manifestation in the game world? Add a MeshRenderer component. Want to allow it to obey the laws of Newtonian physics? Add a Rigidbody component.
You can expect to spend a lot of your time implementing your own components. These custom components will often, ultimately just end up manipulating the transforms and other components of other GameObjects in the world.
Now you might wonder how GameObjects are created. One way is just to create an individual GameObject and attach components to it (analogous to an anonymous class), for the most part however, you will create things called 'prefabs' which are analogous to classes in OOP. Instances of these prefabs can then be easily instantiated (either manually via the editor or programmatically at runtime).
Once you have gotten your head around these core concepts, the rest starts to naturally follow. You can study topics like animation, custom shaders, net code, physics etc. and quickly understand how they relate to the core concepts.
My path to learning Unity (and I'm still learning!) was to follow the Unity official tutorials then start prototyping game mechanics - how to create a first person controller, how to allow player to interact with game world objects, how to animate characters etc. I'm now at I guess an 'advanced beginner' stage. I'm comfortable with the core API, have dabbled in most of the common topics you would need to be familiar with to make a game, and now I'm just doing projects to build up my productivity and skills.
Also, try to build this modular plugin in OpenBIM environment with IFC  support, then it will be more useful
If you need some help in this way let me know
Really love watching Anime in my down time. In the past I have watched well over 100+ series in Dub. Recently I was frustrated waiting for Dub for some later series and newer ones.
Which lead me to watch Subs and I really dislike reading the text, especially when two characters are talking you have text on the top and bottom of the screen! Too much to read at once.
Finally many times there is hiragana, katakana and kanji written for effects or spec sheets and many times it's not translated. I felt like I was missing out on something.
So decided to learn the language. I'm having a blast learning it.
With tech, absolutely nothing. Too busy making stuff. That said, waiting for Vue 3 to launch and then get into learning all the new things with that and seeing what benefits can be brought to existing codebases. Can't wait really.
If you want to learn Japanese casually, especially through pop culture like watching anime, I think you can start by proficient Katakana.
Been an English speaker, you have a lot of advantage getting good at it in short time. Been able to regularly recognize them and been able to say some of them will certain boost your confidence in language progression.
Other than that, I've spent a lot of time on Abductive Inference this year, since I'm on the hook to do a talk on the subject at All Things Open in October.
I've also been messing with OpenCV a bit lately.
Finally, a lot of low level electronics stuff. Revisiting my hobby of building and experimenting with simple circuits and what-not. As part of that, I want to learn KiCAD eventually, so I can design PCB's. This also supports the 8-bit retro-computing interest. A weekend or two ago I built a simple little circuit on a piece of protoboard with a 555 timer and a couple of potentiometers, which implements an adjustable clock generator which will serve as the clock input for the z80 project (at least the early stages when I very explicitly want things going slow so I can see LED's blink with the naked eye, etc.)
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.
On the non-tech side, I started learning Tabla (a musical instrument) this year. This is far enough out of my daily activities that I am getting a kick out of the new skills I need to master, especially the dexterity required to play different strokes with each hand while keeping time!
So, 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.
Having climbed that mountain, I'm currently diving in to industrial automation: not software automation, but both off the shelf and custom robotics and factory equipment providing manufacturing 'unit operations' for working with metals and polymers. It's quite impressive how little integration currently exists between products from different vendors. There is a huge opportunity here for a software-world startup. Competing concerns include safety, reliability, problem detection, automated issue resolution, machine servicing, tool longevity, vendor desire for lock-in, supplier desire for lock-in, noise, dust, finish, speed, logistics, HR, scalability, cost, etc.
The system I ended up building allowed users to monitor the robot from the cloud, including telemetry such as end effector sensors and axis positions, as well as uptime. It also allowed steaming tool paths from the web platform to the robots directly with appropriate safety measures such as manual intervention required to start it. Would love to generalise this sort of thing and create a turnkey solution that allowed people to focus on solving their actual robotics problems, not spend all their time glueing together disparate components.
A generalized solution necessarily has a strong spatial component. Most vendor motion planning applications seem to be either custom and cell/unit-operation specific or are expensive specialist general applications with high complexity that often exist as plugins to CAM tools like SolidWorks.
I don't have the time and resources to acquire and delve in to those, so my approach has been to accept the fact and go ghetto with cheap local hardware that comes without motion planning or integration support, observe existing industry processes, and attempt to self-build iteratively. Luckily I've already built a team to produce custom robotics cheaply and quickly and recently added an experienced production manager from the automotive sector, so we have an advantage in this space.
Using gstreamer, creating gstreamer custom filters, performing graph changes on the fly. Awesome and a joy.
WebAssembly as target(compiling C stuff with emscripten and then enjoying it in the browser).
Playing Stracraft II, high impact of rapid decisions, dealing with complexity as some kind of reflex. Started one year ago, never waste more than 15-20 minutes. I am more focused at work, keeping myself in the zone for longer periods.
Not necessary tech, but being more tolerant towards people in industry not driven by passion, but by salary and day to day life chores.
Most of my development work has been solo, with occasional one-off help from contractors. But the number and scope of my projects has been growing and I've been struggling to keep up, so I'm now going through my first round of finding people to hire, designing a fair & useful interview process, and figuring out the best way to break down my current projects so that it's minimally painful for a new developer to ramp up on them.
This process has also forced me to actually start looking for a legitimate source of funding for my business, besides my own savings. I've been trying to learn this side of things, but it's been a real struggle -- I've definitely been living in the bubble of focusing on my product without thinking about the business side of things for too long, and I'm finally making the leap in terms of taking the business side of things seriously.
Any words of encouragement or advice are greatly appreciated :)
You don't have to have overly strict rule about hours, leave, documentation, etc. but make sure it is very clear to your developers what they are expected to do, and have them evaluate their own performance (obviously with your input) every few months.
Criticise in private, complement in public.
Choose your customers wisely. You make a lot more profit when you start saying no to the wrong customers. (An easy way to say no is just to charge a lot, like 10 times more, than you would normally charge for a certain job)
Don't be afraid to make mistakes, well rather: try not to make mistakes, but expect them to happen occasionally and when they do, don't beat yourself up about it - recognise the mistake, try learn from it, and move on. It might also be an opportunity to impress your customers, by turning a bad outcome into something positive.
Make sure you set things up in such a way that can get some downtime without your company falling apart.
I've installed FL studio a few times in the past but didn't get really far. This time I've decided, let's actually gain some understanding of theory and tools (like synths: https://youtu.be/atvtBE6t48M) and make a little something just for fun.
I'm using LMMS because now I'm on linux and don't want to deal with wine and FL studio. LMMS is actually pretty good, and has a good selection of tutorials on youtube
I am about to quit my current Full Stack job and spend a few months exploring the wild and see if I can strike out on my own with consulting/SaaS stuff. I only have a year of professional experience under my belt, but I’m hoping to use the next couple of work-free months as a retreat to learn a lot of things and pivot my development career. If anyone has advice on how to move into consulting, I’m all ears!
It started by accident, by taking apart an existing mathematical expression evaluator, to learn how it works. This led to a deeper understanding of lexer/parser/interpreter, (pre/in/post)fix notations, stack machines..
Once I realized that what I was looking at was a kind of "virtual machine", I was hooked and continued by adding language features like variables, arrays, objects/dictionaries, functions.
The basics are now fairly complete, but the language doesn't "do anything" yet - it's in its own small isolated universe. Next I'm imagining how it will safely interface with the outside world - networking, file system, database, vector graphics, sounds.. What I want is something like a cross between BASIC, Lisp, and Hypercard.
Anyway, still not sure how practical it's going to be, but it's been a wonderful learning experience. It led me down through the history of computer science to re/learn the basics, making numerous discoveries of things I didn't know, getting a better overview of what languages exist(ed), what I like (or not) about their syntax or approaches to various aspects of programming. Creating this little hobby language has definitely helped me grow as a programmer.
As for a non-tech related subject, studying music theory is endlessly fun and thought-provoking. It also comes down to creating one's own system/language.
The Jazz Theory Book (Mark Levine)
Huge series of play-along books by Jamey Aebersold
The Geometry of Musical Rhythm (Godfried Toussaint)
Harmony (Walter Piston)
A Geometry of Music - Harmony and Counterpoint in the Extended Common Practice (Dmitri Tymoczko)
Lydian Chromatic Concept of Tonal Organization (George Russell)
Augmented Scale Theory (Javier Arau)
Non-Tech related I've been (trying) to learn the guitar. I think music is a great counterpoint to coding. I've been enjoying Coursera/Berklee's Guitar for Beginners .
Which is a great segue to a shameless plug. I mine HN for comments that mention online courses and rank them over various timeframes, including the last year . Oddly, it's how I found the Guitar course, though obviously most recommended courses are tech related. It's a good resource for finding interesting courses if that is your style of learning.
In the spring, a developer from HN talked to me and recommended a free course and I also applied to an online coding school offering free tuition for the summer. In the process of applying, I learned my computer doesn't really have enough RAM.
I haven't been able to spare the $40 or so it would take to upgrade it. I've been working more and moved to a larger apartment to improve my working conditions. (I'm still in an SRO, but now I have a private bath and a George Foreman grill.) I hope to eventually get a laptop to further improve my productivity.
Between my medical condition and extreme poverty, getting anything done takes forever. But I'm actually cautiously optimistic and excited to be working towards goals instead of spending all my time putting out the endless fires of my shitastic life.
I also set up a blog to help me gather learning resources in one place so I can find them again when I can get all my ducks in a row and have the physical arrangements and ability to set time aside to actually learn to program.
I've found sample code from Code Pen useful. I like this CSS blockquote, though I haven't found a use for it per se:
I actually did a couple of home study courses in HTML and CSS years ago. One was a set of CDs, a Christmas gift from a Canadian friend, the other a book I purchased. I used to hand code my websites, but I never got any content up. Maintaining the back end took too much time. Then I migrated to Word Press. Then I migrated to BlogSpot. I produce a lot more content these days.
Through Go, though, I've been feeling like picking up a language with a more advanced type system. Usually when I have that feeling I get trapped in analysis paralysis and just never pick anything up. I've been considering just hard-committing to Java/the JVM and taking it as it is. My experience with Java was from college/my first job after graduating (horrible J2EE fintech mess), but it sounds like more modern Java is pretty neat? Who knows.
We just hired a Kotlin person (really a Java guy who refreshed his Kotlin over the weekend) for this, and we may be hiring more.
I suspect more companies will start looking at Kotlin in the next 2-3 years, especially for green field projects.
I have heard lots about Kotlin though, and it sounds like most devs that've touched it are huge fans.
Sure, Java interop will make some code parts look a lot more like Java then like Kotlin, but I can't personally imagine that a team would decide to switch back to Java-only after using Kotlin for a while. Interested to be proven wrong if someone has seen that happen.
I think that you need to separate out languages that are intended for bidirectional interop (Kotlin/Groovy) from those that provide excellent one-way interop (language uses Java APIs) but less optimal interop the other way (Java uses code written natively in language).
Groovy and Kotlin have great bidirectional interop while Clojure and Scala don't map over nearly as well.
> it smells like after a while non-Java projects could just become Java projects?
Almost never happens in my experience, Java is just too suboptimal compared to these other languages. Once I started using Groovy in a few places it quickly becomes the case that I wanted to use it absolutely everywhere I can - it's just too much better.
I do code it in a much more static style than is often used in Groovy more generally though (declaring types whenever it helps readability, etc). I also always want to define interfaces and key data structures in pure Java if there's no reason to have them written in a different language.
I have noticed something like what you describe with Groovy though. We've had groovy enthusiasts that have peppered our java codebases with Groovy. It's not viral or contagious, and ultimately just served to confuse matters and make the code harder to understand. We've had more than a couple of refactor efforts to get rid of groovy code and turn it back into java.
* Rust is often thought of as occupying a similar niche to Go, because it can deploy single native binaries and has pretty high-level abstractions. Often known for slow compile times, though.
* OCaml has one of the best type systems and compilers out there, with almost full type inference and also compiles to pretty efficient native binaries. Compiler is known to be fast.
* D is also an established, fast and efficient compiler, a powerful language with good libraries and tooling.
* You could definitely try out Haskell, it is pretty mainstream nowadays and there are lots of great learning resources.
Currently falling, albeit very slowly, down the rabbit hole of FP -> category theory -> HoTT.
After going through an introductory resource to learn syntax and concepts, other good beginner resources I have used are the Functional Programming Discord , the free Data61 course that Brian McKenna goes over , and the Tsoding series on YouTube . The Practical Haskell book I mentioned is good too, but I found it a bit higher level than these other resources.
Do we have many long term jobs for Haskell developers?
From what I have seen, there have been roughly 4 groups:
* people running their verified-contracts on blockchain strartups with haskell stack
* people interested in GHC as a compiler (i.e. developing new extensions for their phd theses)
* people doing consulting projects
* people running their company on haskell because they like the stack
Some projects were really interesting, like a a haskell-inspired language that is compiled to VHDL, or various use-cases for Dhall (typesafe alternative to i.e. yaml, that supports functions, but isn't turing complete)
I still have on my todo-list "Do at least one PR for Pandoc!" as that is a haskell project that seems to have nice entry-level issues :)
And I know there are teams in FAANG that use haskell, but I don't think they hire too many people :-)
In terms of long-term jobs, I think learning concepts from statically-typed functional programming language will improve your code quality (read: chance at sustainable employment) in general, but actual prospects are probably area dependent. I am lucky enough to live in a tech hub so there are many Angel List jobs here for Haskell and Scala, but this may not be the experience for every city.
Looker. I get asked for reports frequently and with this tool I intend to cut that number down to zero, company wide.
Kubernetes on AWS. Bought a book, learning about it in my spare time.
Graphql with React Apollo for data access. It's pretty sick. First Redux came out, but it's verbosity was too much, I never liked it. Then Mobx came out and it works fine for me, really fun to use. Now Apollo exists and you don't even need a store. Plus it caches stuff. Plus a bunch of other sexy stuff. Very interesting tech.
I read bad feedback/stories for companies and identify trends on what went wrong, and what engineers hated so I can prevent that at Papa as head of engineering.
Drawing. It's the complete opposite of programming and very soothing after a rough day. There is no right or wrong, it just `is`. I look up pictures of manga I like, from Baki or JJBA and draw stuff, then upload it on Tiktok to share in the fandom.
lol. wait til you start using COPY.
Also, last spring I took the basic Electronics 101 class at our local community college (http://www.ccsf.edu/en/educational-programs/school-and-depar...) -- Ohms law, intro to RC time constants, transformers, etc. It was just one night a week, so not a huge time commitment (2.5 credit units). This semester: active analog circuits!
Not sure it's made me any better at my Python/SQL day job, but perhaps more methodical.
I've started learning clojure a week ago and want to continue in this path of learning / build something cool with it.
Outside of tech: Korean! I find it absolutely fascinating to learn.
I guess what's mysterious is which of Korean / Japanese influenced which??
Korean has a slightly more complex grammar than Japanese. Not by much but there are some forms in Korean that don't exist in Japanese. But it's remarkable how they are almost identical.
Separately I dabble with Ng's coursera ML course but aside from writing jupyter notebooks with the octave kernel, which I enjoy - latex math equations are so pretty - I find the subject material a little boring. I like graphical structures though so maybe interest will pick up when they get into neural nets.
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).
Many, many companies, including big ones, are using Rust in production. They don't need to re-write things.
Rust feels like a well designed language and ecosystem so far and I think it learned the lessons where other have failed.
On a more interesting note , learning Meditation via "The Mind Illuminated" book. Plus I plan to do a Goenka retreat later in the year (probably after reading a post on here "Vispasanna for Hackers" I think it was titled).
On a side note, I know we are encouraged to keep learning as developers, but being an old schooler (been writing software since 2000) I notice that people often keep learning new stuff instead of getting really good with the tools they already know. Usually the first attempt with a new framework / language isn't really the best code as it is a learning experience. As a result we have a lot of applications written in a less than perfect way. Curious what other peoples opinions are on this.
I do a lot of GIS so there's many very cpu intense tasks for analysis.
Instead of trying to break up a problem into lots of small promises as not to block user input, I can just call away to a separate thread to do a ton of blocking work and return the output.
The beauty is wrapping the interface in a promise so I can perceive web workers as being just like Ajax calls: an async data source/sink.
The more broad answer to what I'm learning in 2019: how to use every new project as a playground to learn new technology while not putting the project deliverables or time-line at risk. This is basically about learning how to de-risk and prepare/conceptualize fallback plans. And how not to bite too much off.
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.
2. Powershell (on Linux.) I'm already proficient with the traditional shells, but I want to see if this is overall a better CLI and/or scripting environment than, say, Fish. (This was prompted by the recent post about a similar thing newly implemented in Rust.)
3. APL, getting back on it after a long time and potentially writing my own compiler and dialect, if I feel inspired.
4. Consolidating Japanese, mostly the spoken language, because I don't have the time nor will to memorize 1000s of characters. I'm already intermediate level, so at this point I mainly watch movies / shows every day, hoping some of the vocab will stick to my mind.
..Any resources to help me?
In general, I think it's very valuable to have a deep understanding of your platform, even if you don't need all that information on the daily.
Things that haven't made me a better developer: Kubernetes, GCP.
Erlang — because I love the actor model, but I only tried it with Scala/Akka. Time to try the original.
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?
Algorithms to live by  - I am an engineer by training and product manager. I am always on the lookout to improve my knowledge of computer science. This book helps tremendously by showing a way to _look_ at problems. Certainly helps to have a better mental toolkit.
Inner Engineering - A Yogi's guide to joy  . Has really helped me get perspective on the issues that matter and how to lead a happier life.
I have been reading up on Physics (Richard Feynmann's books, obviously) and intend to continue this in the quest for better thinking. I do wish I had done this earlier in my life :-( but never too late!
Japanese. Learned Chinese in early twenties then started with Japanese until life happened. Picked it up again, and trying to learn it as a third language with my wife. Making progress.
Reinforcement learning, but not the deep RL stuff as much as the fundamentals and theory. Really enjoying working through https://agentmodels.org/
Rust, with a colleague, but mostly because I like my colleague.
Will soon take a class on Racket with my wife.
2. Bringing my modern web stack skills up from indifference to high proficiency
4. Houdini + Redshift
5. Compositing software (ideally Nuke but it's looking like AE or Fusion)
6. UE4, basic proficiency
7. Managing things like screenplays and design docs on a continuous basis, rather than just having these things exist in my head for years on end.
8. Any interesting medical/biology material I can get my hands on. I'm seemingly way more passionate about biomedical stuff than I am software these days.
9. Cooking things that aren't just nutritious but actually taste good to other people.
10. Effective time management for all of this.
The gist of it is pretty much find a bunch of things I enjoy and bounce between them to maximize efficiency, while maintaining some sort of ongoing goal system/structure to manage or otherwise guide myself through it all.
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.
The Probability and Statistics course was hard for me and a big step outside my comfort zone. I cursed it a lot but I'm glad I completed it. I don't think I would have gone through with it if I hadn't payed for the certificate.
Next are Machine Learning Fundamentals, last but not least Big Data Analytics Using Spark.
I'm not really sure it made me a better (web) developer, but the process of learning keeps my brain fresh. Plus, it opens up a whole new and exciting world for me.
OS's. I'd like to build my own, but I've been a web developer for 15 years. It's going to be an uphill battle. I'm halfway through Learn C the Hard Way.
I'm looking forward to the webserver too.
Less-tech: 1. Lean Startup 2. Reading "Cultivating communities of practice" by Etienne Wenger 3. Trying to understand the rentability of real estate investments
And a bunch of computer stuff too, but hell, for the past 33 years of working in this game, I've learned a bunch of new computer stuff each year. Sooner or later it all tastes like chicken.
I've been learning a little Clojure and using it for work, and it's been kind of an eye-opener. (I've been mostly a Java developer for 15 years.)
And the idea of using the same clean code for the frontend is super attractive.
Also learning a bit of Phaser.js, since I'd like to make an HTML5 game sometime soonish.
At some point I need to sit down and go through the gauntlet of refreshing all the skills for job interviews, (especially since I've been mostly developing/maintaining software for phone systems the past year and a half and I don't think I want to stick with it). Been putting that off, though.
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'  is also quite a worthwhile read. A quick look shows that it not only has a link to a book  but also some freely available notes/lectures as well as some exercises.
Blog post is here:
non medium link: https://djhworld.github.io/post/2019/05/21/i-dont-know-how-c...
Lately I've also been working on an embedded BLE Mesh project at work writing C, which I found surprisingly fun. Coming from literally zero experience in embedded systems programming, I found it a fun and rewarding challenge.
I've also been very interested in Rust lately, just need to find a project to play with.
In the past eight months, I studied React and ElasticSearch but never did any projects at work or on my own so neither went anywhere. However, I did put my first two Node projects in production and did a Fargate (AWS Serverless Docker) proof of concept that I’m trying to find time to put into production. I want to get deeper into Docker.
I want to learn some Clojure!
on the "non tech" side, i decided to learn online as much as i can about digital video filmmaking, as a hobby.
https://www.youtube.com/channel/UCvnmumaXaxiPvBDq90YxByQ - Really nice metal detector guy
https://www.youtube.com/channel/UC7RQMyUPzbQerM6rKRGqhvA - Review of toys, mostly beyblade and collectors toy
https://www.youtube.com/channel/UC4HCI_GJ2ZsueOlqgjApnFw - weird student
As a hobby project, I stopped using Sublime and other text editors. I have been using Vim all of this year and have become more competent with various shortcuts and general navigation.
I had similar thoughts about Go. I got excited about it but didn't find that learning it was really that difficult. That's good if you're learning it to quickly use it but I'm looking to expand my mind.
Now I'm learning Clojure. I don't know if I'll ever use it, but learning it (like people always say with Lisp) has been an experience. I'm still working through learning it and I won't lie, it's been challenging. Been having to remap a lot of mental models and re-thinking loops and objects.
I'm also learning Spacemacs. I've been a hardcore Vim user for nearly a decade now. I've tried also learning Emacs but just couldn't get past the C-x and M-x for everything. I know it's a tired punchline, but it's like it was created to be anti-ergonomic. I've been using Spacemacs for just a couple of days and coming from Vim, it's amazing. I'd highly recommend it to anyone that's already very familiar with Vim. It's got a learning curve, but after using for just a couple of days I feel I'm already coming out on the other side of that curve.
In non-tech, I just bought a house and have been learning gardening. Nothing serious and in fact intentionally NOT taking it too seriously and not over-planning. I've already grown my own carrots, peas, radishes, and even some pretty flowers for my wife. It's been incredibly satisfying to make dinner and look at half my plate and say, I grew that.
I've even had some failures but you just stir it into the dirt and keep on.
I know it's not tech, but having a hobby that isn't in front of a screen nor sitting down has been great. I used to just play video games and my body was just not having it anymore.
Otherwise I’ve been trying to re learn Emacs with the rise of LSP - such that I can do most of my work now in Emacs. I’ve been using doom-emacs to great success.
I tried getting deeper into it using ZoKrates (zkSNARKs) but back then the docker image was broken.  https://github.com/Zokrates/ZoKrates
That aside,malware analysis. I've tried using Ghidra a bit but I've mostly been learning how to use procmon for dynamic analysis in windows and IDA to unpack and figure out your run of the mill windows malware.
Coming from a career in Android/Java/Kotlin. The new planned skills are to enable completion of projects I have in mind.
Edit: Oh, and Rust as well :)
I am taking this quantum machine learning course these days. https://courses.edx.org/courses/course-v1:University_of_Toro...
- how to write a dashboard with React & Redux and a Python backend
- solving various (beginner level) CTF challenges
- Sounds lame but it's rather interesting: Risk Assessments and Risk Management
- improving my guitar skills
In no particular order:
Tech: Python (I am not a programmer by trade today)
Generally just hooked on self development books, I blame Tim Ferriss.
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.
- Computer Science: Having a designer background, I didn't have the opportunity for formal training.
- React and its ecosystem
- Music Theory
> So I've been looking into microservices communicating with a persistent message broker like Kafka and what I'm still not sure about is the frotnend - that is, I know that the FE will communicate over https with an API gateway service (so REST or GraphQL) but if the FE needs a resource, how should the API gateway handle the request back to the browser? The only pattern I've seen so far is to issue a 201 CREATED for e.g. creating a user. Have you come across any other patterns for this?
Think of the API gateway mostly as a router that allows you send requests to many different pieces of software behind it.
As far as patterns for HTTP Status Codes, you should take a look at the RFCs that define them: https://tools.ietf.org/html/rfc2616#section-10