Journey from Junior Java to Blockchain developer
Hi
I'm Dominik, I'm 23 and I'm taking part in web 3.0 revolution as a developer. ;)
Before
I was normal junior java developer for a half year in some cool software house. When my project end, I got great opportunity. Choice between continuing java dev career or reskilling into ethereum blockchain in care of more experienced blockchain developers. Before this moment, I was talking with these 'blockchain guys' in company and reading some articles from various sources. I bought some crypto on exchange in december 2017 (not the best moment :P).
I could write about reasons of my choice, but it's obvious.
Start
I started full time reskilling from Princeton University Cryptocurrency course on coursera.org.
It gave me some overview how blockchain works. Why it's immutable, what is consensus, why it's not anonymous and at the same time is anonymous. I'm not sure, I completed this course, but if not, I recommend at least a part that I completed. :) Link attached at the end, it's free.
Afair, next step was some Ethereum development courses on Udemy.com. I completed (or maybe almost completed :P) two courses. A lot of content was duplicated, but it was cool.
During
Udemy courses, maybe later, colleague has send me article about Ethereum Virtual Machine (EVM). It was first article in serie 'Diving Into The Ethereum VM' (ofc link below).
I realized that after few weeks i know more about EVM than about JVM (Java Virtual Machine). I was learning Java for a two years, before I became junior dev. Lol. xD.
It's definitely advantage of Java and others mature tech, that I really didn't have to know. Some low-level EVM knowledge, imho is must have for every Ethereum developer.
After
3-4 weeks(?) full time + still learning in spare time I was able to:
- Write some Ethereum smart contracts in Solidity
- Test contracts with JavaScript (JS)
- Develop basic dapps (app ==> dapp - decentralized application) using truffle and standard JS framework like Angular (actually TS, I know frontend basics before courses ;)
- Run own Ethereum node connected to network, running private blockchain, mining.
- Deploy contracts on test/main net
- Create own ERC20 token (ERC20 is the most popular token interface, token type), even with some ICO.
Generally frontend of distributed application is build with the same stack as 'normal' app. The Difference is backend connection. Instead of making e.g. REST requests to some servers, it connect with blockchain node. Connection is provided by web3 provider which connects with local running node (localhost:port) or totally external public node (www.some-node.com). Truffle framework makes interaction with smart contract easier. Truffle also can be used in testing. For me, the best way to test smart contracts is to write tests in JavaScript (even better, TypeScript) and interact with contracts by Truffle framework.
After after
The most advanced blockchain knowledge that I was able to understand (yellow papers are quite hard tbh), was Mastering Bitcoin book. Some first chapters are good for everybody but some of them are really advanced for non-dev people. There is also Mastering Ethereum book. I read this few weeks ago when it was under development and completed in ~50%. Now it almost done, I'm going to read this soon. Btw it's so cool for me to make book on git. I've never seen it before.
Prerequisites
I'm programmer for a 3-4 years. Before I started learning blockchain, I already have some stuff done.
- Web/mobile application programming.
- Strong (as a junior/mid) Java 8/Spring/sql databases skills.
- Basics frontend skills, basics JS es6+, TS, node.js environment.
- Generally IT knowledge from 3 years at university (I haven't done it yet cause I have better things to do :). E.g I knew what is socket but I suppose that it's not so clear for everyone :P
- Linux, bash - I'm not sure about blockchain development on Windows (correct me if I'm wrong). Mac is ok.
Currently
I'm quite paranoid about security, privacy and censorship, maybe that's why I'm really fascinated in blockchain and decentralization technologies. When I hang out with my friends, even non-technical, I'm trying to educate them. Ofc I'm also trying to not be a nerd or something like this, but my friends should know that bitcoin is more than magic cryptocurrency used to buying drugs and paying for murders XD I'm glad, when some of them ask me after all about this.
It sounds pompous but It's revolution, I'm taking a part in this revolution and I’m fucking proud about this.
PS. It is my first post like this, additional in English. Motivation is to give example how to get started with dapps development. Ofc it’s only my example, not the best way ever to become blockchain god :)
Waiting for feedback.
Links:
Bitcoin and Cryptocurrency Technologies created by Princeton University:
https://coursera.org/learn/cryptocurrency
Udemy courses:
https://udemy.com/blockchain-developer
https://udemy.com/ethereum-dapp
Diving Into The Ethereum VM - part 1:
https://blog.qtum.org/diving-into-the-ethereum-vm-6e8d5d2f3c30
Mastering Bitcoin:
https://github.com/bitcoinbook/bitcoinbook
Mastering Ethereum:
https://github.com/ethereumbook/ethereumbook
Congratulations @kruligh! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Do not miss the last post from @steemitboard:
Vote for @Steemitboard as a witness to get one more award and increased upvotes!