December 2010
I was noob and will be a hacker. Right now, I am at somewhere between these two. For me the best way to achieve my goal starts with writing it’s steps down, and making it clear. So I wrote my own definition of both being noob and being hacker. I am sure they can not be exactly true, so share your opinions.
Mysql: Know what table and database mean. Be able to connect it and write very simple sql queries.
Php: Use php to solve all your problems. This is the only language you realy know. Be able to create whatever you want.
htaccess: Know what .htaccess is used for and use if for mod-rewrite.
Html/CSS: Know basic html markup syntax. Use css to create ‘awesome’ UIs.
Jquery: Use it to add some animation to your website.
Photoshop: Easiest way to create ‘awesome’ logos for your website. Be able to find new fonts to create new logos. Write website’s name with this new font and save it as a jpeg.
Goddady: Know how to register new domain names. Be able to use one shared hosting account to host all your websites.
Scala, Clojure, Haskell, Erlang, Lisp: Read one or two books for each one. Understand what they are good for. Be able to write small scripts to make your job easier.
Python, Ruby, C++, Java: Master all these languages. Read a lot of book about them. Use them everyday like pro. Creating things is not enough anymore, try to break the limits of these languages.
Rails, Django: Master these frameworks. Be able to use them to earn money. Create a lot of apps using them. Join their communities. Actively contribute to these projects. Attend conferences. Write useful blog posts. Share your plugins etc on github.
Javascript, Html5, CSS3: Read a lot about them. Especially about javascript. Be able to do whatever you want using these languages. Learn to write advanced javascript for high trafic websites. Create your own little frameworks share them on github. Jquery is not enough for you, contribute to advanced real javascript framework projects.
MongoDb, Cassandra, Reddis, NoSql: Know that there are different type of database solutions for different problems, not just mysql. Read few books about them. Be able to do simple tasks on these databases. Learn which one is useful for what type of problem. If you chose to use it in your next project master it and hack it.
Memcache: Creating websites is not enough anymore. There are more challenges like speed, and server resources. Learn how to make things faster and cheaper.
Nodejs, Apache, Ngix, Proxies: Now you use your own virtual or real servers, so you have to manage them. Learn all the options create your own server templates.
Vim, Emacs: Be able to use both of them. But master one of them and be fan of it and use it everyday. Dont forget to customize it and write your own plugins.
Mediatemple, Amazon, Google App engine, Rackspace, Heroku, Engine yard
Git, Svn: Be able to use both of them, but be fan of just one. Use it like pro.
Fireworks, Photoshop: Master these programs. Use fireworks to create your websites’ layout. Use photoshop to create high quality awesome logos and graphics.
Twitter, github, blog, hacker news: Use twitter to keep in touch with other hackers. Use github to share your hacks and show your coding skills. Blog about useful tips about everything. User hacker news and other tech blogs to stay up to date about news.
small open-source projects: For every tool you use write some plugins and hack it somehow. Share your hack probably it will be useful for other people too .
P.S. In this context, “being hacker” has nothing to do with being malicious.