Java is unarguably one of the most popular programming languages in the world today. Companies like Google, Amazon and Netflix — to name a few big names — are using Java to build large portions of their infrastructure and backend services. But despite its huge popularity (or perhaps because of it) Java’s reputation among programmers is something of a mixed bag. Some seem to genuinely like it while others hate it.

Personally, as someone who has been using the language for more than a decade professionally, I find it to be an excellent language. No, it isn’t perfect. And the…

Photo by Thomas Kvistholt on Unsplash

A relative who is making his first steps into the world of programming recently asked me what is meant by the term “serverless”.

I have to admit that the term is a bit of a misnomer because all applications eventually run on an actual server. But marketing folks and others like the term, so it stuck. It’s a bit like calling credit-card based purchases “moneyless”. You’re still paying your hard-earned money. It’s just that someone is taking care of the logistics of moving the money around for you.

But to actually understand this whole concept of “serverless” we have to…

Photo by Josephine Amalie Paysen on Unsplash

When it comes to hiring engineers, it seems to me that most companies subscribe to the “conventional wisdom” of hiring experienced (a.k.a senior) engineers. They want people that “have been there”, “done that” and who can “hit the ground running”.

While there is nothing wrong with hiring senior engineers, the fact remains that there are more job openings than there are senior engineers to fill them. This scarcity leads companies to “cannibalize” on each other’s resources while overlooking a perfectly legitimate pool of high quality resources.

In the past couple of years I was fortunate to work with some really…

Photo by Stanley Dai on Unsplash

A nice fellow recently asked me for advice on how to get started as a programmer.

This is a surprisingly difficult question to answer and there’s hardly “one good answer”, but I think that there are a few guideposts that can help anyone in their journey.


Seems obvious but you’d be surprised at how many people study programming to “know programming” without any clear direction as to what they’re going to do with it.

It’s like spending all your days learning every possible chord for a guitar without ever playing a single song. …

Last November I was able to strike a major item off my bucket list: run a marathon. But not just any Marathon. It was the New York Marathon, no less.

As far as I can remember myself I was into running. But it wasn’t until I read the book “Born to Run” circa 2011, that I really got excited about long distance running. This book completely reconfigured my thinking about running and what a human body is capable of doing.

So I started pushing myself to run longer and longer distances. At first I was only able to do a…

Tell me if this sounds familiar:

You walk into a bookstore, browse through some shelves and run into a programming book about a subject you always wanted to learn. Maybe it was about machine learning or algorithms or some other cool technology.

You read the back cover, the intro and you get really psyched. You think to yourself: “I think I can really get this”. And, “when I’m done with this book I’m gonna have super powers” and “I’m gonna show the guys at work what a rock star I am” etc.

You get home, open the book that is…

Computer scientists that need to write code for a living, constantly straddle the line between the beautiful and neat little world of theory and the somewhat messy, “macgyverish” world of practical software engineering.

In the theory world, cute cuddly objects pass messages of peace and love between each other. They live on a beautiful planet, replete with natural resources.

In the practical world, objects sometimes try to set each other on fire. …

This is not a technical post. But in light of the recent tragedies I decided to take a moment and reflect about us. Humans.

Without a doubt, the last few decades had given us many technological wonders. Personal computing gave us the ability to create incredible things. The Internet took down our artificial barriers and made it possible for us to freely exchange ideas regardless of our physical location. The web gave us access to the world’s information and open source leveled the software playing field.

Computers are also giving us self-driving cars, delivery drones, chess mates, better science and…

Sorry, but I’ll have to disagree with you about this one. Wholeheartedly. If you have the idea that you’re “bad at math” then you’re simply wrong. Dead wrong. How do I know this? Because no one was worse at Math than I was. I was at the bottom of my class throughout my teens and was convinced that Math is nothing but a torture device in the hands of my sadistic teachers.

Last week I published a post describing my personal Math journey. Several people have commented on the article on social media to the effect of: “I’m bad at…

Programmers don’t typically like to admit that they’re bad at Math. Also, it doesn’t help that most non-programmers have this idea that all programmers are some kind of Math geniuses. Unfortunately for me though, I wasn’t blessed with any Math superpowers. Not by a long shot. In fact, I used to hate Math more than anything else in the world. Just the thought of going to Math class at junior high brings back memories that look something out of a Pink Floyd video.

By the time I got to high school I was convinced that Math was totally beyond me…

Arik Cohen

Self-taught programmer

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store