It’s time to talk about my expectations for the New Year’s. 2017 has been a great year for me, and I’ve learned so much. However, with more inspiration and motivation plus an organized mindset, I bet that I can learn so much more, and help others around me do the same.
I originally started off with an interest in I.T and cybersecurity. In fact, I’ve never written a single line of code until my last year of middle school, in a wonderful language called C++. I became especially interested in the Linux operating system, specifically Kali Linux, and decided rather than just use the tools and programs that have been built for me, I wanted to write my own in order to automate certain procedures. This led to me getting more and more in-depth into programming, specifically at the systems level. Now, rather than putting focus on penetration testing and security, I’ve shifted my gears into building distributed systems, implementing security schemes, and understanding the intricacies of software at a low-level.
However, as an avid fan of the Rust programming language, many systems engineers like myself have started to give web-centric development a chance, as emerging technologies such as WebAssembly has made it possible to translate our programs into visuals on a browser. One of the best examples was a brainfuck interpreter built in Rust and WebAssembly.
This has started to give me much more motivation pursuing web development, as I am able to build technologies in a comfortable environment, yet build viable products. This is the bridge to the divide for systems and web developers.
Definitely one of my biggest goals for the year: learn, understand, and embrace the phenomenon of web development, but still remain in touch with systems programming.
As for the future overall, there’s definitely still a lot to pursue. I think project-based learning is always the best way to learn, and I am always inspired to build new projects from theory.
Here’s a list of projects that I want to accomplish:
- HRNG - a hardware random number generator - utilizing analog digital converters to generate random numbers based on entropy
- Z80 computer - build a simple computer with a Z80 processor, powerful enough to support a Forth interpreter.
- A templating language (like Jinja, or Mustache)
- Real-time chat application built ontop low-level TCP/IP stack interactions
- Distributed database based on a B-tree, with a web interface
- Re-implementation of the Lua Programming Language
Here’s some programming languages and technologies that I would love to learn:
- React Native