What is a hacker?

CY's Path to be a ... hacker?

I was a great fan of esr's article How To Become A Hacker [1]. For a very long time, before I got a Linux computer and before I learnt Pascal in F.4~F.5 (Grade 10~11).

It turns out that after many years, I have my opinion separated from my virtual mentor(here I mean the article).

Is there a definitely best beginner programming language?

I would love to say my first programming language is LOGO ‐ which I learnt in the last year of primary school (Grade 6), rather than Pascal, though I never write something delicated in LOGO.

I do not agree that Python is a good choice of THE first programming language. It has been used in application formally and there are common practices that newbies may not know. To have an counter recommendation, I would say: you should learn more than one languages to begin! I guess the good combination is Scheme/LISP (okay... where LOGO is dervied from), C (C is complicated; but according to a friend, her school used C instead of Pascal for the high schoolers. Therefore I think there are possibilities that using C to start well.) or Smalltalk, and then a scripting language (the three rivalries: Perl/Python/Ruby). That is, about 3 languages: (Scheme or LISP) + (C or Smalltalk) + (Perl/Python/Ruby).

Why do I suggest so? This is because one may be restricted to use a definite paradigms in Scheme/LISP("approximately" functional), Smalltalk(object-oriented, abbr. as OO) and Ruby(OO). Hence they get on the paradigms fast. A scripting language is needed, to test ideas or do handy tasks, and save time for compiling.

(I would like to mention that Perl coders can understand Python easily, and the reverse seems not true. And, people heard of OO can choose Ruby to begin. Disclaimer: I only know Perl, and write some nano-size programs in Python; knowledge about Ruby, but as I learnt OO through Java and Smalltalk, I doesn't plan to be repetitive.)

Anyway, the set of first programming language(S) is quite a personal choice. If you have a friend willing to guide you in Rust or Clojure, it might be better than self-taught.

That's all for my passage on languages at this moment.

Attitudes

The rest of this blogpost is written for myself. I noted some rules of thumb for a good hacker here.

1. "The world is full of fasciating problems waiting to be solved." [1] Such a good news for a person loves mathematics.

2. "No problem should ever have to be solved twice." [1] Don't reinvent your wheel (DRY). Maybe there is more than DRY ‐ programming paradigms like OO and functional programming are trying to reuse codes.

3. "Freedom is good." [1] Will it lead to a debate on political philosophy or applied ethics? I did't study philosophy. Maybe spaces for diversity is good as well.

4. "You are not your code;"[4] but it reflects what kind of person you are, and more seriously, affects the users and fellow programmers [5]. Lots of stressed talks on being a programmer for living emphasize the importance of communication.

5. "The only true authority stems from knowledge, not from position."[4] This is about a flat structure of a team.

In the future, I will go back to this post and review how much I have done and elaborates these ideas. □

Reference

  1. How To Become A Hacker, Eric S. Raymond
  2. Teach Yourself Programming in Ten Years, Peter Norvig
  3. Reddit Discussion: Learning Curves for Different Programming Languages
  4. Ten Commandments for Egoless Programming (author: Lamont Adams)
  5. Becoming a Better Programmer, by Pete Goodliffe, O'Reilly

Except from images, quotes and codes from personnels, the content of this page is released under a copyleft spirit. One may share (full or partial) content of this page on other platform if you share it under the free and open content spirit.


Contact on twitter: @e7_87.

Created Date: 21st July, 2021. Version 0.01.1: 1st August, 2021.