computer science fundamentals for one with no computer science background

I’m working as software engineer with broad range of technology stacks. Frontend and backend and sys admin and so on. It’s because I love to learn something new.

It’s funny how my career has come this way. My major during college was Mass Communication and then later I changed it to Graphics Design. Back then I loved visual effects using 3d and was fascinated with digital artists’ work. I had a few chances to learn multimedia authoring tool and web development tool such as Macromedia Director and designing web site. Naturally I wanted to learn “Lingo” language while learning Macromedia Director and HTML/CSS while learning website design.

By the time I had a final test, I was able to make a simple game using Macromedia Director on top of the main course of the class. Same to HTML/CSS on top of website design. My attraction had started shifting to interaction from static design.

Flash 4 and 5 were the web when it was the most popular thing in web development community. I was so into them as well. So I started learning a lot of them myself again like the way I learned Lingo and HTML/CSS during college. And I got pretty good at them and that’s when my programer life has started.

Basically I’m a programer who does not have computer science degree. However, I tried to learn CS knowledges as much as possible by myself. Simply because I wanted to know more about programming, algorithms, techniques, and so on. Also I wanted to become a better programmer. At one point I wanted to go back to school and get a CS master degree, but having a full time job as a programmer and a family hasn’t helped me much.

So far I’ve learned Big-O, sorting algorithms, map/reduce, hashtables, numbering system. When I have more chances, I am planning to go at Tree, Graphs, Data structures, Discrete math whenever I have time.

These are topics that eventually I want to cover basically:

  • Sorting (bubble, quick, insertion, merge, selection)
  • Data Structure (NP-complete)
  • Searching
  • Trees
  • Graph
  • Path Finding (A* & Dijkstra)
  • Mathematics

Maybe I missed something, but I hope to know all of topics really well soon. 🙂

I feel so dumb…

I just found out that most of browsers already have Array.prototype.map, filter, and reduce implemented natively… dumb me…

nodejs applet. please not.

I heard a group of people calls nodejs module as applet. Maybe I’m an old school, but in my book applet is Java Applet ‘water ripple effect over an image’.

I think node module sounds good and people should leave java applet as applet.

sports fans are awesome

Everytime I read a news article online, I notice that sports articles normally have 1k+ comments by users. It’s almost every article that caught my eyes while other articles have several to couple hundreds the most.

Does it prove that sports fans are awesome and very active in what they love?

I believe so.

Why I am going full JavaScript

Recently I claimed that I would go full FE. Since I’ve been working on couple projects utilizing Backbone/Marionette, I realized that it’s about time for me to go full JavaScript even for BE using nodejs.

To be honest, I did not use nodejs much except running nodejs via forever and some hello world type apps. However, I’m planning to use javascript for everything as much as possible. Reasons are:

  • Community seems to be there to support you
  • One scripting language for FE/BE
  • Data transport over HTTP is done using JSON mostly
  • Many 3rd party Rest APIs support JSON
  • Performance got much much better

So that means, I will dig up build process, deployment process, and CI for Javascript sooner or later, which I’m happy to investigate.