Each week I write a blog post which describes what I learned that week. I write these blog posts for two reasons.
First, I want to keep track of my personal development and writing regular blog posts is a great way to do it.
Second, I want to share my findings with you. I hope that you can use some of them in your daily work.
Let’s get started and find out what I learned in week 32.
What I Learned in Week 32
First, It is not a good idea to have separate frontend and backend developers. This situation has two problems:
- If you have problem in your backend and all backend developers are nowhere to be found, you are screwed (and wise versa). Also, even if the frontend developers are capable of writing backend code, they cannot be productive right away because they are not familiar with it. If you need to fix that problem fast, you are out of luck.
- If the backend and frontend code is written by different developers, you need to specify the API provided by the backend before any code is written. Also, you have to take extra measures to ensure that the frontend and backend developers are not making "incompatible" assumptions. If you are in hurry, this might not be a viable option.
I am not saying that specialization is a bad thing. However, I think that all developers should write both frontend and backend code.
Second, All Hipster tools don't suck. Actually some of them are pretty awesome. For example, if you are building a single page web application, you can build a pretty good dependency management and build automation system by using NPM, Bower, and Grunt. I admit that I don’t have a lot of experience from this but my first experiences were very positive.
Third, I have always thought that storing hierarchical data to a relational database means that you have to create a hierarchical table structure. Last week one of my colleagues told me that he decided to describe the hierarchy as a JSON document and store that document to the used database.
I was very surprised (and a bit ashamed) to hear that because this idea never crossed my mind. However, when I think about it, it makes perfect sense. This solution is simple and it does not suffer from performance problems associated with the "traditional" solution. This reminded me how easy it is to get stuck in old habits. Sometimes it is definitely better to think out of the box.
Fifth, I have been looking for a good code colorer plugin for WordPress. The SyntaxHighter Evolved is probably the best existing WordPress plugin for this purpose.
Anyway, yesterday I received email from Mark Lishman. He is working on a startup which provides an easy way to create online tutorials. The cool thing about this product is that you can create interactive tutorials and highlight parts of your source code when the viewer of your tutorial clicks a special link. The product is still a bit rough but the idea is very interesting, and it helped me to see online tutorials in a new light.
What Did You Learn This Week?
Share your learning experiences or other comments on the comment section.