Sndbox Summer Camp – Coding - My coding journey

in #sndboxquest7 years ago (edited)

First, I would like to express my gratitude. Thank you to @anomadsoul and @guyfawkes4-20 for hosting the Sndbox quest for developers, @legendchew for helping me to proofread this post.


Image Soruce

You can read the rules about the sndboxquest here.

Introduction

I am a student at University of Western Australia (UWA) majoring in Electronic and Electrical Engineering. Although I am still a student, I am a self-taught software developer where my field of interest revolved around Web Development, Task Automation (web testing, chatbot, web automation), Internet of things, and recently I start to work on Blockchain development projects.

Currently, I am working on a few projects on building decentralized database and also the bots creator for a few community, namely #teammalaysia, #cn-malaysia, #teamaustralia, #qurator, and #cebu.

My dream as a software developer started as I want to learn how to automate my daily task in real life. Imagine people had to do things repetitively, but if we can do it with just a few lines of codes. That will be awesome. This is also my motive to keep myself moving forward while learning how to code.

Journey

My software development journey starts in the year 2015. I started as a freshman student where I took a class known as "Introduction to C++". At that point in time, I really wanted to learn to create a program that can automate my task. However, just as I thought that my journey as a programmer or coder was about to begin, I discovered that there is not much of practical use of what I learn in school. Most of my tasks in school were as simple as creating a virtual ticket machine and mostly non-practical.

Beginning

I am a hardworking person and an avid reader, I spend most of my time at the university in the library. I started picking up books around web development, and spend my leisure time reading and creating websites.

I always wanted to help my parents and that was the point where I use a lot of practical code in programming languages. I help them to develop and create websites for their business.

Categories

I will describe my field of software development into a few categories:

  • Electronic Project / Internet Of Things
  • Web Development
  • Task Automation
  • Blockchain Development

Electronic Project / Internet Of Things

As an electronic and electrical student, I had been working on a few projects of Electronic projects. From working on projects, I learn also a few programming languages along the journey.

Braille Translator

  • Programming Language: C++, C
  • Tools/Library: Arduino UNO

This is my first electronic project. Our project is to create a microcontroller that translates English into Braille (A language for the blind) via Bluetooth.


Me and my group mate working on the braille translator

Smart Aquarium

  • Programming Language: C++, C, Python, HTML, Linux
  • Tools/Library: Arduino UNO, Raspberry Pi

Smart Aquarium is an internet of things project, where it will share data collected in the aquarium onto the internet.

Solar Boat

  • Programming Language: C++
  • Tools/Library: Arduino MEGA, WiFi shield

This is the largest project I ever had made, I had been working closely with a Mechanical Engineer to ensure the boat work. It is powered by solar, and the data collected by it will publish into the Internet through WiFi.

IOT_Lights

  • Programming Language: C++, C, Swift
  • Tools/Library: NodeMCU, XCode

source code

This is one of my hobby project where I created an iOS app with Swift, and it controls a light bulb that is connected with NodeMCU.

Web Development

I had been working on web development for more than 3 years, but this field is really too wide for me to explore, every day there are new technologies popping up, and I had to keep up with it.

Personal Website

  • Programming Language: Ruby On Rails, Sass, HTML, CoffeeScript
  • Tools/Library: Heroku

The journey began of venturing into the realm of Ruby On Rails, a full-stack web development framework. I really learn a lot of best practices as a software developer from learning and making a web app with Ruby On Rails.

Screen Shot 2018-05-16 at 8.57.21 PM.png

My personal website

As a self-taught web developer, I always had an issue which is their portfolio, so I decided to spend time and effort to create my own personal website with what I learn. I used Ruby on Rails and try it out. After a few attempts, I had finally launched my personal website back in July 2017. You can check it out at https://www.wenghan.me. Please take note that I did not update it since January 2018.

Open Source Project: Open Dota

  • Programming Language: JavaScript
  • Tools/Library: React.js

G6KHe1q3_400x400.jpg

source

On October 2017, I found a chance for me to work the front end web on Open Dota, a statistical site for Dota 2. I managed to enhance the mobile web user experience by introducing Progressive Web App concept into the project.

The merged pull request:

Web Development Talks

  • Programming Language: JavaScript, Ruby
  • Tools/Library: Chrome

On December 2017, I decided to step up my software development journey by starting to share about what I know in a meetup.

I would say that December 2017 is the turning point of my life. I gave my first talk on "Progressive Web App, add to home screen and push notification" at the Kuala Lumpur JavaScript (KLJS) meetup at Mind Valley. Then, "Push Notification with Ruby On Rails" for Ruby Tuesday. Lastly, "Progressive Web App" on BarCamp KL.

Fixing a bug on steemit.com official website


Read more about it

On January, I made a pull request onto steemit/condenser where I fix the bug on the add to home screen feature on Google Chrome, where the steemit icon does not show out. I made a pull request to steemit/condenser and got the feature into production.

Task Automation

This is the field that are close to my heart. The field are the reason I started coding and keep doing it. It started to solve my own problems, and also others.

Dota 2 auto accept

source code

  • Programming Language: Python
  • Tools/Library: PyAutoGui

This was a project requested by my friend. This script will help you to accept matches on Dota 2.

With the help of this script, Dota player does not have to waste their time in front of their computers, and can instead spend their time on other matters while waiting for a game, because this script help to accept the game.

Automated Web Testing

  • Programming Language: Python
  • Tools/Library: Selenium

During my half-year break, I start to work at a company for a few months mainly working on Web Testing and Front End Web Development.

I have written a web testing script (with Python Selenium) to test out the website when it is on bidding.

Steemit Bots

I build multiple bots with Steem Blockchain, integrated with Telegram and also Discord.

Bot created for #cn-malaysia

Source Code

  • Programming Language: JavaScript, TypeScript
  • Tools/Library: SteemJS, dSteem


Read More about it

I am a member and developer of #cn-malaysia community. As our team suspects, there is a lot of non-mandarin content being posted using #cn-malaysia without any consent. Therefore, I have created a bot to remind them not to use #cn-malaysia tag. It is meant for Chinese languages and Malaysian Steemit user only. This bot will comment on the post that uses the tag #cn-malaysia without fulfilling the requirement. (At the moment, the requirement of the content must have at least 20% of Chinese words)

statBot

Source Code

  • Programming Language: JavaScript, TypeScript, MSSQL
  • Tools/Library: Discord.js, SteemJS

Read more about it

statBot is a utility bot on Discord which helps Steemit user with a few tools.

Current function:

  • Conversion between Crypto to Crypto, Crypto To Fiat, Fiat to Crypto.
  • Check Crypto Price.
  • Check performance of a certain tag on steem (in terms of week or year)
  • Check delegators, delegatee
  • Create delegation link

StepHard Bot

Source Code

  • Programming Language: JavaScript, TypeScript, MongoDB
  • Tools/Library: Discord.js, SteemJS, Jest

Read more about it

Stephard is a discord bot being used by the #teammalaysia community. This bot will carry out post a quality check and reward the author with an upvote and comment on their post. A certain post related to sensitive tag will be redirected to another channel and pending for a moderator to verify it before the rewards and comment to be carried out manually.

Currently, this bot still being developed to improve code quality and fight against abuse.

Contest Bot

Source Code

  • Programming Language: JavaScript, TypeScript
  • Tools: Telegram, SteemJS

Read more about it

contestBot is a bot that checks for the latest post on steem blockchain when someone posted with #teammalaysia alongside with #contest, #raffle, and #upfundme, in order for the users to join the contest ASAP.

Blockchain Development

Currently, I am working on a few enterprise projects for creating a decentralized database with blockchain technology.

Create blockchain from scratch

Source Code

  • Programming Language: JavaScript, TypeScript
  • Tools: Jest

I am working on a video tutorial series on how to create a proof of work blockchain from scratch.

The playlist is on Youtube.

The end project (one of the end product of my project) look something like this:

Ethereum Blockchain

  • Programming Language: JavaScript, Solidity
  • Tools: MetaMask, Ethereum Test Net, EtherScan

Currently, I am working on private blockchain project to create a decentralized database by setting up private Ethereum network using Proof of Authority.

I also did Ethereum Smart Contract analysis, so far I had a post written analyzed Mithril token.

Smart Contract Analysis #1: Mithril (ERC20 tokens)

Conclusion

In a nutshell, I started coding with my interest in task automation, along the journey I learnt a lot from web development and electronic projects, which lead me into the field of blockchain development.

I am indeed very lucky to have came across Steemit in my journey as a programmer/coder. With Steem, I finally had a place where I can put my practical skills into good use! I am really glad that my skill are able to help not just myself, but also many people in the community.


superoo7.png

Sort:  

Your efforts are commendable. I especially have so much respect for self-taught talents like yourself @superoo7. Your story is superbly impressive. While I've always wanted to pick up a computing language, the time, focus and amount of energy invested in adopting a completely new skill (on top of my current one) could metaphorically (if not literally) kill me. Since you mentioned you're an autodidact, did you start off those projects as a volunteer without pay, or you take on those projects and learn as you go? I'm curious on how it works with you all in the IT. I have a friend who accepted a task and started learning about it, even though he's a total newb at that time. Well, all of us gotta start somewhere nevertheless.

The story started a bit funny haha. When I was younger, I always thought making app will earn a lot of passive income, however I was wrong 😅

I wanted to find a job that can work from home when I am at Australia, I guess web development was my choice to get started.

did you start off those projects as a volunteer without pay, or you take on those projects and learn as you go?

I did take some freelance work, but when there is no work available I start to work on a few open source project (which is for free).

You PASS! Ops, I'm not a sndbox judge.
All the best my idol. Hope you able to join Summer Camp. Good luck!

Thanks again for the proofreading haha

Hahaha!
@superoo7 You PASS!
But oops... I am not the judge either!
All the best to you!

Just realize I used the wrong account

That is quite a variety of great projects, and you certainly learned a decent variety of programming languages in just three years! Bravo to you for that! Thanks for sharing your triumphs with #steemitbloggers 😊

Thank you for stopping by 😄

I couldn't quite keep up with all the programming and technical lingo in your post. But what I admired about you, other than your intellect and hardwork, is your willingness to do your best and to persevere until you reach your goal of finishing your ECE course because you want to help your parents now and in the future.

And I am glad to find someone who's from Australia, too. I am from South though.

All the best in your UNI studies and all your projects. I hope you will find success in all your endeavours.

Thanks for stopping by @evlachsblog , this post serve the purpose of completing the quest by sndbox, haha.

I knew I should have taken up Electrical and software development in college. I should have not taken the easy road lol. Guys at the office most of them are analyst and programmers. Interesting listening to them about some of their projects at work. You have a very bright future ahead of you. Here and the outside world. Cheers!

Thank you 😄
I guess it was a tough journey haha, and facing computer for more than 10 hours 😭

i tried to code my blog at one point, still cant get it right. IT and engineering is pretty cool! i wish i have that skill. I picked up writing instead, now i'm into business major

Thanks for stopping by haha.
I used to hate coding also, but at some point I decided to change. 😁

that,m's really cool. i admire coders for a reason. they turn nothing in something.

I will be honest, all this is alien to me. And when I saw self taught... like wow!! Kudos
But I did want to take this opportunity to say thank you for your contribution to Team Malaysia. I cannot imagine how despondent it would have been to see my rewards if you were not part of the team.
So thank you and All The Best!!! I am sooooo rooting for you!!!

haha, thanks for stopping by.
Just participating the quest hosted by sndbox, I need to explain a bit more in details.

Amazing list of projects! You're still a student but you've already done a lot. I am non-techy so I don't understand most things you discussed lol but I can see the complexity of what you do and the skill that you have.

Good luck on the quest :)

The quest is about coding, so I had to write a little bit in depth, I guess the video might help to visualize what is it about haha. Thanks for stopping by!

Yes I think that's how it should be done for the quest. Don't mind the non-techy me haha.

I found this really very interesting. Your list of projects are fascinating. I am a SndBox summer camper but from opposite ends of the steemit writing tags as I'm completely focused on creative writing, travel writing, poetry, articles etc. Even though I have absolutely no background in science, I find it interesting to read and for inspiration (mainly for SciFi). Blockchain and tech does play such a big part in all crypto-folk lives, however non tech savvy lol. I wish you the best of luck with this entry into the SndBox Summer Camp :-)

Thanks for the wish and coming to my blog 😁

All the best to you. With such thick portfolio, for sure you will pass for this.

Thanks for the wish 😁

No problem. My pleasure..