I was fortunate enough to grow up in Queens, New York, which contains many of the literal most diverse zip codes in the world.
This meant that growing up, I was exposed to a lot. Obviously I experienced Chinese language, culture, and cooking at home-- but I also went to school, church, and played basketball with the local Irish, Filipino, and Puerto Rican kids. Then I went to Bronx Science and saw the dichotomy between its adolescent culture and what the rest of the neighboring Bronx schools had to offer, before attending CUNY and Fordham and seeing two completely different socioeconomic levels.
All that's to say, my background is pretty eye opening for most people around the world, though it's pretty common to New Yorkers. These experiences were also what introduced me to perhaps two of my favorite loves in the world-- computer programming and rap music.
Though they seem completely unrelated at first, they do share some commonalities. Otherwise this video of Warren Buffett and Jay-Z chatting about luck wouldn't be as captivating as it is. And of course, you wouldn't have Ben Horowitz quoting rap legends in the beginning of every chapter of his book.
What could they possibly share in common then? It's firstly the endgame: programmers and rappers want the same things:
- A sense of "making it", from either getting signed to a deal or joining a public software company
- Status, from either Platinum albums or Twitter/Github mentions
- Influence in their small circles (e.g. BET Hip Hop Awards, MET GALA, etc. versus tech conferences )
And what's the most interesting commonality?
Both professions are writers, simply using different mediums to express their thoughts.
Computer programming and software development is literally taking the knowledge and solution in one's head, and expressing it in symbols that a machine can understand.
Rhymes and bars are poetic memoirs of one's current state of mind.
They also share a need for a flow state. When Kendrick Lamar wrote "Bitch Don't Kill My Vibe", he was talking about being in a frame of mind where he could innovate, create, and harness his mental powers without distraction. If you're a developer, you know exactly what I'm talking about here.
Since most of you reading this will be programmers (hello to the few rappers reading this blog), I think it would be interesting to explore some things that software engineers can learn from hip hop artists.
You gon' have to pay the price if you get wishy-washy / This a Tallageda Night, I think I'm Ricky Bobby / My advice quit the music, get the different hobby / All you ***** sound the same, just a different copy - Joyner Lucas, Broke and Stupid
These bars are underrated as hell, bro. So many gems here.
Without clear requirements, "wishy washy" asks are going to lead to failures of projects. They are also, indeed, usually very costly-- so make sure that you know exactly what you're trying to build before starting to code.
Secondly, Ricky Bobby in Tallageda Nights was all about winning initially. However, winning (and trying to be the "rockstar developer") got him in a world of hurt and trouble. You ultimately have to realize software is a team sport, and that ninjas/rockstars/superstars hurt morale instead of boosting it.
The last two lines are especially true for developers who identify as IndieHackers. You don't want to be a copycat. AlgoDaily is not like any other interviewing site-- it is meant to be the ultimate remix, and serve as a career coach, habit tracker, and community combined into one simple platform. If you "sound the same" as a rapper or developer, go find yourself a niche that you can excel in.
I was born like this, since one like this, immaculate conception / I transform like this, perform like this, was Yeshua's new weapon / I don't contemplate, I meditate, then off your fucking head / This that put-the-kids-to-bed, this that / I got, I got, I got, I got / Realness, I just kill shit / 'Cause it's in my DNA - Kendrick Lamar, DNA
Kendrick drops a lot of hidden gems in his bars, but this is one of my favorite. What he's saying here is for top performance, you need to be at 0 or 100, but never in the middle.
That is, you either need to be meditating, or kicking ass. You need to be putting kids to bed, or killing shit.
This is because software engineering is not just a mental game, but a physical one-- long hours slouched in front of a screen wreck your body. If you want to really attain peak performance at all times, you need to be willing to be an absolute bum sometimes.
Yishan Wong, former CEO of Reddit, has written about this before:
Exceptional focus does not mean that you are able to work during all your waking hours. During your "downtime" (time when you are not being productive but also not sleeping), don't try to work on lower-priority projects. Instead, make sure you are goofing off. The most focused people maintain focus over long periods of time (months, years) rather than working obsessively on something over entire days (which is likely to lead to burnout), so make sure your daily schedule involves breaks where you deliberately don't do anything productive. The idea here is to not fatigue your mind with focus, but to continually "re-attract" it back to the thing you want to focus on.
This is why AlgoDaily advocates just one problem a day. Not two, or five, but ONE. One a day gives you the rest of the day to do whatever you want.
You know this'll never be a tie, just look at they laces / You know careers take off, just gotta be patient.
These words came from Kendrick Lamar.
Yep, that Kendrick Lamar. The man behind HiiiPoWeR, Swimming Pools, Humble, and many more huge hits. If there's one guy who can lay a claim to king of the rap game, it's him.
But did you know he started rapping and making music at just 8 years old? It was when he witnessed Tupac and Dr. Dre film California Love. From then on, he knew exactly what he wanted to do.
He didn't achieve commercial success, however, until Section.80 came out in 2011-- meaning he had to hone his craft for 16 years before blowing up.
Careers take time, but don't worry. Your competition is rarely as prepared as you, provided you do just a little bit each day-- because ultimately, the average person does zilch to improve upon their standing in life.
I'm just a man of the people, not above but equal / And for the greater good I walk amongst the evil / Don't cry, Mama, this the life I choose myself / Just pray along the way that I don't lose myself / This is for the ***** that said that Hip-Hop was dead / I went to Hell to resurrect it / How could you fail to respect it? - J. Cole, Let Nas Down
Yes, there are some libraries written that aren't up to par for production use, and it seems like there's a new framework every few days-- but to new developers, as J. Cole says, "for the greater good I walk amongst the evil".
This is the environment that new developers are coming into-- the world where programming mostly happens in, or for, browsers. As a result, the average "not above but equal" developer is coming into a terribly chaotic world and trying to make sense, and their dent, in it. It's not easy.
So give the new wave of developers some respect. They are coming into a web full of unlimited possiblities, but very little guidance (many are now self taught through sites like this), to make things. That is difficult, and bad works will happen, but great things are coming out of it too. And that's progress.