I took the decision to finally go deeper into coding, also professionally. Since the time we had programming classes in university I always thought that I want to try that at one point of time.
Now is that time. And luckily I already work in a little software development startup, so I got a few colleagues who I can consult on where to start and how to design my learning journey. I then took these inputs, and told ChatGPT to create a learning path shaped towards backend development for me based the input. The end-goal should be, that after 2 months I will be able to take on my first task in our company.
Week 1: Introduction to TypeScript and Development Basics
I signed up for the highest ranked Web Development course on Udemy based on the recommendation from a colleague. Cost: $15. Most of the week I spent with the course to revisit basic development principles (which I already knew from Java) and to learn about basic web development in HTML, CSS and JS.
I accompanied that course with reading about TypeScript. Every single colleague of mine motivated me to learn TypeScript.
In the end, I felt intrigued to make something that makes at least a little bit more sense to me than a simple calculator. I set out to develop a little tool for oncharging management for our company.
You can check it out hereWeek 2: Intermediate TypeScript and Introduction to Backend Development
The learning this week was again awesome, although I did not quite stick to the plan. I took on the task to provide a simple monitoring solution for one of our new products in testing. The possible solutions were either a Flipside Dashboard with some advanced queries and using new features or deploy a little script. For sake of having all information in one place and not having the deployment overhead we decided to go for Flipside. I spent a lot of time with SQL and Flipside this week, moved on with the Wev Development course, but didn't do any TypeScript.
I spent a lot of time this week on this dashboardWeek 3: Advanced TypeScript and Introductory Scripting
Again, a very practical week driven by what was needed in work. But anyways, when I look at the plan above, I managed to check off quite a few items: used and learned a little bit about async/await in TypeScript and I also worked a little bit with file operations ins Node.js. Most of the time I spent on setting up an Express.js server in Typescript for monitoring purposes. This week I used TypeScript a lot again, which helps with the syntax understanding.
Week 4: Backend Frameworks, Tools, and Web3.js Introduction
I couldn't spend a lot of time learning this week, as I had a lot of other stuff to do. When I had time I continued with the Udemy course and learned about using axios for server side requests, did my first Github Pull Request, learned about basic authentication methods and then started to learn about Databases. Specifically I learned the basics of MongoDB and mongoose.
Continue on plan for last week and implement another mini-project where I can use all the learnings so far. Also I am going to learn Docker basics.
These weeks is why I hold myself accountable here. Again, not really a lot of progress this week. I continued learning with Mongoose in node.js servers and also learned about some Docker basics. Two days of the week I was at a conference in Vienna, so there wasn't that much time left for coding in the end.
Continue on plan for last week and implement another mini-project where I can use all the learnings so far.
I implemented an event listener for mint events which are emitted by a smart contract in a NestJS based backend application. Just to figure out that the listener doesn't pick up all the events for several reasons. After discussions with a colleague we decided to take another approach and checking the logs for the event with a cron job regulary and pass the summed up values of these events. Voila! No events were missings anymore.
I also did some minor work on Flipside Boards and deployed my first little app on Streamlit Community
Since last week was very practical and I implemented a minor working function in a NestJS backend, my curiosity this week takes me to frontend development, specifically React. So the plan for this week is to go through all React course lessons from the Udemy course and get a good feeling of what's possible to do with React and how it works.
I went through some React lessons and got a good basic understanding of it. Started onboarding to my first bigger backend project.
Continue onboarding to the 2 main backend projects of Brokkr. I will dive deep into the code and try to understand what the code does, how it is achieved and why it is implemented the way it is.
This was the first time in my learning journey that I was only reading code for the most of the time. I went through the first backend project (almost finished by end of the week) more or less function call by function call in order to understand the context as good as possible. On the more fun side of this week I spun up another server on DigitalOcean and installed Dokku and a Ghost blog on it. I will publish more and more in the future on this blog but you can already be among the first subscribers here.
More backend code onboarding. Understand the main things of Brokkr Backend. What does it do, how does it do that and why? Plan for this week was also to actually start coding again, by extending the current API functionality.
Half of the week I continued to dive deep into the current Brokkr Backend code. Then I started coding again. My task was to extend the Brokkr API functionality and implement a little piece of new calculation logic. In order to accomplish this I also got onboarded to our internal backtesting tool (in Python) in order to generate some chart data. And I did another fun project this week and set up another Ghost Blog/Newlsetter, this time only with limited access for a group of friends, where each week one of us has to share an e-mail newsletter with updates from his life (since we are all remote from each other).
I wrote a little blog post about how to setup your own Ghost blog on any server with Dokku: Read it here.
Coding on the Brokkr backend.
I implemented a new route on the server which retrieves some on-chain data and I also added a new property to the already existing return object. Getting more and more in shape working with Git and Github. I learned a lot about how to structure code I write and how thorough one needs to be when writing production code. I also set up a little e-mail reminder app with Node Js in for the private blog with my friends. Each week one of us gets reminded to write a short newsletter update!
On the weekend I tried my luck with a CustomGPT. Say hello to ThorGPT, you can interact with Midgard API in a conversational way. Check out ThorGPT.
Coding on the Brokkr backend.
Soo many other things on my mind and to do...
tbd
For setting up new version of Raspberry Pi OS a new file "userconf" has to be created in root directory with "pi:$6$/4.VdYgDm7RJ0qM1$FwXCeQgDKkqrOU3RIRuDSKpauAbBvP11msq9X58c8Que2l1Dwq3vdJMgiZlQSbEXGaY5esVHGBNbCxKLVNqZW1" as content in order to support the standard pi & raspberry user password combination for ssh access.