JavaScript, Linux, C++, React, etc…
main page view source view history

Programming Skills

I have some experiences with a handful of languages and frameworks, but most of my work are in JavaScript.

I will admit that I haven't experienced with any "high-end" technologies such as deep learning or data analysis, and I also have few foundational knowledge such as algorithm or data structure, or low level assembly stuff. All I can do by far is just code things. There isn't any application of neural network, higher maths or super elegant algorithm in any of my projects so far. I will try to learn these, but my progress is slow.

You probably have guessed that I don't have the skills to solve code interview questions, and you're right. I'm not smart enough to figure out the efficient solution to those problems myself, and I haven't tried practising interview questions. (I mean, I still have my maths exam, and that is bad enough.)

In addition, I'm not best at writing human-readable and comprehensible code. Sometimes my code don't even make sense to me quickly.

Table of contents

  1. Specific skills
    1. Web (front-end)
    2. Web (back-end)
    3. Web (cross-platform desktop)
    4. Linux
    5. C / C++
    6. Android
  2. See also
  3. References and Footnotes

Specific skills

Web (front-end)

// Near expert?

I have around 7 years of experience with JavaScript. In the front-end area, I'm skilled with React and the functional ideas that comes with it. I'm good with other aspects of the front-end stack as well, such as HTTP, HTML or pug and CSS or Sass. I'm also able to make some good SVGs.

My personal opinion is that building for the web is the most efficient way to start the first version of most Apps, especially since the recent advancements in the web have allowed more native experiences.

I have built a decent Progressive Web App - SchSrch. I used Webpack to handle assets and generate ServiceWorker. I have tried my best to optimise the performance and have approached a near 60fps UI.[1]

Web (back-end)

// I use it everywhere. Pretty skilled?

I have experienced with Node.js and had build some website with it (including this one), with the Express framework. I have also built a RESTful HTTP interface for SchSrch. I also understand the security aspect of HTTP, including things about SSL, the PKI-based SSL certificate, certificate transparency, HSTS and how to set up a secure SSL server.

Web (cross-platform desktop)

// Write decent desktop application with things used for the Web.

I like being able to use Web technology to build desktop applications (any platform actually - it should try to run on both desktop, tablets and phones), and I have written a useful desktop app with Electron. I know the downsides with building desktop Apps with HTML/CSS, such as for Electron the resulting app package will be pretty big ( over 40 MB after compressed for Shanbay-Desktop ). Unfortunately the supports for proper Web App are mostly chrome-only.[2]


// Mastered for daily use / server maintenance, but not for hacking.

I have been using Linux as a desktop OS for:

╭─linux@MaoWtm ~
╰─➤ uptime
00:47:31 up 1815 days, 00:47,  0 user,  load average: 0.0, 0.0, 0.0
╭─linux@MaoWtm ~
╰─➤ # I mean… This is basically how my terminal looks like. Color scheme is solarized.

I can use zsh in Linux reasonably well to do some non-trivial system maintaining ( including breaking the system ). Thanks to Arch Linux, I've managed to understand, not very deep, how Linux ( and those fundamental application that almost every distro include, from "systemd", "initramfs" to "ip" or "dig", or package management like "pacman" ) briefly work and how to make great use of them. I use Linux as my desktop OS. Linux and some command line tools helped me a lot, not only for coding.

C / C++

// Can write simple things.

I know how to write C++ programs, but it often takes much longer and the products are likely buggy and only run on Linux. I can write a C++ version of most JavaScript/Python program I have wrote. It just takes more time and may have more bugs.


// Basic App development skills

I understand some concepts in building Android Apps, but haven't built much projects yet.

See also

References and Footnotes