Hacker News new | ask | show | jobs
by sheraz 3691 days ago
My rights of passage:

1. your own MVC framework You should do this to appreciate why developers of other frameworks make the decisions they do. I gained so much wisdom from this.

2. Parsing HTML with regex (see here - http://blog.codinghorror.com/regular-expressions-now-you-hav...)

Seriously, just DONT DO IT(tm) -- but if you do, you will eventually learn why you don't want to do it this way, and you might get pretty good at regex expressions

3. Your first mobile app published to the app store Publishing apps to the Apple app store has given me a deeper appreciation for paying attention to the little details. Also, making native apps is a completely different paradigm than web apps because shipping code with logic errors has such a high cost and delay to fixing them.

4. Port an existing library to a new language I long time ago I ported a recipe parsers from Ruby to Python for a paid gig. It was such a good learning experience because I had a perfectly functioning reference implementation, which allowed me to go deep on getting the details right.

I had to replicate test cases, documentation, scaffolding, and the code itself while being aware of the gotchas of Python.

6 comments

The quintessential stackoverflow answer about parsing HTML with regexp should be noted:

http://stackoverflow.com/questions/1732348/regex-match-open-...

>Seriously, just DONT DO IT(tm)

Yes, you'll learn that this task is literally impossible, as well as why:) I think we've all used regex in a spot where it's impossible to do so correctly at some point.

Well, considering the PCRE regexes are nearly Turing complete, you can parse (well formed) HTML.

Someone better versed than I: https://nikic.github.io/2012/06/15/The-true-power-of-regular...

Of course, the money quote is: Just because you can, doesn’t mean that you should.

I had never seen PCRE regexes. I was thinking about the plain ones. This was pretty cool, thanks for sharing:)
I highly highly recommend writing your own MVC framework. I did this about three years ago because I was tired of working with Laravel which I didn't fully understand or appreciate at the time. Building your own forces you to take apart other frameworks and see how they run and really ask yourself what you would do different. It's a small enough project for you to play with for a week or two and really get a better understanding of how modern web applications are put together and how they could be put together better.
The OP's list seems is a list that will prepare you to ace job interviews. This list is a list that will make you undeniable [1].

[1] https://www.youtube.com/watch?v=2Pn1RVZu-24

Thanks for your reply, these are great additions to my list :)
For regular expressions, I recommend "Mastering Regular Expressions".

I thought I knew REs before reading that book -- since I had both been using them for years and did a course on automata theory at Uni -- but that was just Dunning–Kruger.

Edit: Also write a templating system and be done with it, so you won't waste time doing it later. :-) When I first learned programming I did quite a few simple games and routines to find primes.