In the early 2000s, a lot of learning happening on IRC. You’d befriend a few people, and we’d all teach each other something that we know or have learnt. From writing small games in GameMaker (now part of YoYo Games) to writing extensions in C++ and assembly, there were kids who were practically doing everything. Actually, that’s where I first heard about neural networks, though…
Meetings are the new-age power naps of the 21st century. Everyone is in it, but no one seems to get any value out of it. Have you ever been a silent spectator in too many meetings? Did you understand neither the problem nor the agreed upon solution? Was there even a problem? Did everyone even come to an agreement? The first problem: no agenda “Hey, I’m calling this meeting to discuss…
Having started programming in the early 2000s, I was used to having sparse resources for learning anything. Fast-forward 10 years, as I was in my 3rd year of engineering, I came across an excellent programming course by Stanford’s Mehran Sahami called Programming Methodology . Although I was already proficient in programming by then, but I still watched the videos and did the assignments…
I’ve noticed that a lot of times, the beliefs and conclusions of people ( in tech, because that’s what I’m exposed to the most ) are the sum of first page results from Google. When out of curiosity I debugged an issue with rendering performance in a ReactJS app, I observed that although we used ImmutableJS, we were just initializing a new immutable object each time we got a new…
Proud dropouts sometimes swear by online courses, because the project-based learning that they provide is hands-on, and also representative of the how the real world is going to be. On the other hand, proud academics sometimes like to brag about equations and theorems that are really not relevant, but still sound academically enlightening. I’ve done numerous Udacity nanodegrees and paid…
When preparing for my first violin group performance, my teacher gave me a valuable advice that is applicable everywhere. He said, “Remember, you’ll only play 25% of what you’ve practiced on stage. There’s going to be distractions, the crowd making noise, your fellow players making mistakes, and also the fact that you can’t stop and correct your own mistakes. You just…
Shortly after graduating college in 2012, I decided to learn violin, which is a very demanding instrument. My hobbyist knowledge of guitar and the piano did help, but not much. I used to go to a class for 2 hours every week, which seems very little. It seemed as if it’ll take forever to learn anything decent to play. Fast-forward about 2 years, by which time I had won proficiency awards and…
After programming for ages, attending every known coding conference on the planet, and wrangling your way through software engineering practices and building large scale systems, what becomes your biggest obstacle to effectiveness? Idiotic companies and their hiring practices. We need a junior Golang developer for an amazing large-scale platform (translation: CRUD on more than 10 records). You…
Look at this quote by Russ Cox: Software engineering is what happens to programming when you add time and other programmers. Doing incremental changes to a program, without any consequence of future maintenance (time) or other programmers (collaboration) is laughably easy. Want to add a new database column? Why not? Which database should be use for our 10MB of data? I heard Cassandra is very…
Here’s a concise resource to learn the basics of Python quickly: https://docs.python.org/3/tutorial/ . It’s official, concise, and covers some major aspects. It also spends less than 5 minutes on if and for statements, as opposed to devoting hours to them. (If you read this post till the end, I’ll show you another invaluable and lesser known resource for learning specific…
When it comes to software engineering and computer science, almost everything can be learnt online. Whether it be C++, Java, Scala, or algorithms, data structures, or even building REST APIs, there’s a 20 hour video course that shows you exactly how to do it. In the early 2000s, I learnt programming by reading little and experimenting a lot, and that was the case for a lot of other kids in…
Learn Python the Hard Way is a great introduction to the Python language. Back in the days, it was one of the books that I occasionally used to refer to. However, in retrospect, I’m not a big fan of the premise. The “hard way” is typing each exercise in the editor by copying it verbatim, so that you pay attention to details, rather than just skimming. The point is valid, but not…
“Engineering is the purposeful use of science.” I remember Anant Agarwal defining it in MIT OCW’s introductory electronics video. As an electronics student at the time, this statement immediately struck a chord. This is where science and art come together. While science provides an explanation of phenomenons, it doesn’t tell you what you should build. It will only tell you…
Or so it might seem, especially after skimming through 500 pages of different types of sorting algorithms. It’s immensely frustrating to purchase a mint copy of CLRS, only to use it as a hood ornament for your table. Did you know that sorting forms the basis of every data management system that you’ve ever seen or used? Databases, your favorite key value store, graph databases, and…
Starting something new is always easy. Continuing with it is a challenge. We see this pattern everywhere. What do newly hired architects say? Let’s throw away everything and rebuild this. It’s a mess! This blog is me starting to share nuggets of wisdom every day. The objective is to write every day, which is highly inspired by Seth Godin’s blog .