December 8, 2025 . By Reuven
30 years! It’s hard to believe, but it was in December 1995 (i.e., 30 years ago) that I went freelance, giving up a stable corporate paycheck. And somehow, I’ve managed to make it work: During that time, I’ve gotten married, bought a house, raised three children, gone on numerous vacations, and generally enjoyed a good life.
Moreover, I’m fortunate to really enjoy what I do (i.e., teaching Python and Pandas to people around the world). And why not? I earn a living from learning new things, then passing that knowledge along to other people in order to help their careers. My students are interesting and smart, and constantly challenge me intellectually. At the same time, I don’t have the bureaucracy of a university or company; if I have even five…
December 8, 2025 . By Reuven
30 years! It’s hard to believe, but it was in December 1995 (i.e., 30 years ago) that I went freelance, giving up a stable corporate paycheck. And somehow, I’ve managed to make it work: During that time, I’ve gotten married, bought a house, raised three children, gone on numerous vacations, and generally enjoyed a good life.
Moreover, I’m fortunate to really enjoy what I do (i.e., teaching Python and Pandas to people around the world). And why not? I earn a living from learning new things, then passing that knowledge along to other people in order to help their careers. My students are interesting and smart, and constantly challenge me intellectually. At the same time, I don’t have the bureaucracy of a university or company; if I have even five meetings in a given month, that’s a lot.
Of course, things haven’t always been easy. (And frequently, they still aren’t!) I’ve learned a lot of lessons over the years, many of them the hard way. And so, on this 30th anniversary of my going freelance, I’m sharing 30 things that I’ve learned. I hope that some or all of these can help, or just encourage, anyone else who is thinking of going this route.
- Being an excellent programmer isn’t enough to succeed as a freelancer. You’re now running a business, which means dealing with accounting, taxes, marketing, sales, product development, and support, along with the actual coding work. These are different skills, all of which take time to learn (or to outsource). Be ready to learn these new skills, and to recognize that in many ways, they are much harder than coding.
- Consulting means helping people, and if you genuinely enjoy helping others, then it can feel awkward to ask someone to pay you for such help. But if you’re doing your job right, your help has saved them more than your fee – and shouldn’t you get paid for saving them money?
- Three skills that will massively help your career are (a) public speaking, (b) writing well, and (3) touch typing. The good news? Anyone can learn to do these. It’s just a matter of time and effort.
- There are a lot of brilliant jerks out there, and the only reason people work with them is they feel there isn’t any alternative. Give them one by demonstrating kindness, patience, and flexibility as often as possible.
- Attend conferences. Don’t just attend the talks; meet people in the hallways, at coffee breaks, and at meals, and learn from them. You never know when a chance meeting will give you an insight that will help a client. I’ve met a lot of incredibly nice, smart, interesting people at conferences, and some of those friendships have lasted far beyond our initial short encounter.
- Running a business means making lots of mistakes. Which means losing lots of money. The goal is to make fewer mistakes over time, and for each successive mistake to cost you less than the previous one.
- I used to think that the only path to success was having employees. I had a number of employees over the years, some terrific and some less so. But managing takes time, and it’s not easy. I haven’t had any employees for several years now, and my income and personal satisfaction are both higher than ever before.
- Write a newsletter. Or more than one. Yes, a newsletter will help people to find you, learn about what you do, and maybe even buy from you. But writing is a great way to clarify your thoughts and to learn new things. I often use “Better Developers” to explore topics in Python that I’ve always wanted to learn in greater depth, often before proposing a conference talk or a new course. I use “Bamboo Weekly” to try parts of Pandas and data analysis that I feel I should know better. And in “Trainer Weekly,” I reflect on my work as a trainer, thinking through the next steps in running my business.
- Be open to changing the direction of your career: I had always done some corporate training, but it took many years to discover that training was its own industry, and that you could just do training. Then I found that it was a better fit for my personality, skills, and schedule. Plus, no one calls you in the middle of the night with bug reports when you’re a trainer.
- It’s better to be an expert in a small, well-defined domain than a generalist. The moment that I started marketing myself as a “Python trainer,” rather than “a consultant who will fix your problems using a variety of open-source tools, but can also teach classes in a number of languages,” people started to remember me better and reached out.
- That said, it’s also important to have a wide body of knowledge. Read anything you can. You never know when it’ll inform what you’re teaching or doing. I’m constantly reading newspapers, magazines, newsletters, and books, and it’s rare for me to finish reading something without finding a connection to my work.
- Get a good night’s sleep. I slept far too little for far too long, and regularly got sick. I still seem to need less sleep than most people, but I’m healthier and calmer when I sleep well. If your work can only survive because you’re regularly sleeping 4 hours each night, rethink your work.
- My father used to say, “I never met a con man I didn’t like.” And indeed, the clients who failed to pay me were always the sweetest, nicest people… until they failed to pay. A contract might have helped in some of these cases, but for the most part, you just need to accept that some proportion of clients will rip you off. (And going to court is far too expensive and time-consuming to be worthwhile.) By contrast, big companies pay, pay on time, and will even remind you when you’ve forgotten to invoice them.
- Vacations are crucial. Take them, and avoid work while you’re away. This is yet another advantage of training: Aside from some e-mail exchanges with clients, little or no pressing work needs to happen while you’re away with family.
- Companies will often tell you, “This is our standard contract.” But there is almost always a way to amend or modify the contract. One company required that I take out car insurance, even though I planned to walk from my hotel to their office, and take an Uber between the airport and my hotel. The company couldn’t change the part of the contract that required me to get the insurance, but they could add an amendment that for this particular training, this particular time, on condition that I not rent a car, I was exempt from getting auto insurance.
- You can be serious about your work and yet do it with a dose of humor. I tell jokes when I’m teaching, and often I’m the only one laughing at the joke. Which is just fine.
- The computer industry will have ups and downs. Save during the good times, so that you can weather the bad ones. When things look like they might be going south, think about how you’ll handle the coming year or two. And remember that every downturn ends, often with a sharp upturn — so as bad as things might seem, they will almost certainly get better, often in unpredictable ways.
- About 20 years ago, I tried to found a startup. The ideas were good, and the team was good, but the execution was awful, and while we almost raised some money, we didn’t quite get there. Our failure was my fault. And I was pretty upset. And yet? In retrospect I’m happy that it didn’t happen, because I’ve seen what it means to get an investment. The world needs investors and people with big enough dreams to need venture capital – and I’m glad that I didn’t end up being one of them.
- Spend time with your family. I work very hard (probably too hard), but the satisfaction I get from work doesn’t come close to the satisfaction I get from spending time with my wife and children, or seeing them succeed. You can always do one more thing for work. But the time you spend with your family, especially when your children are little, won’t last long.
- Don’t skimp on retirement savings. Whatever your government allows you to put aside, do it. And then take something from your net income, and invest that, too. We started investing later than we should have, and while we’ll be just fine, it would have been even better had we started years earlier. Take a part of your salary, and put it away on a regular basis.
- The world can use your help: Whether it’s by volunteering or donating to charity, you can and should be helping others who are less fortunate than yourself. (And yes, there are many people less fortunate than you, even if you’re only starting off.) Even a little time, or a little money, can make a difference — most obviously to the organization you’re helping, but also to yourself, making you more aware of the issues in your community, and proud of having helped to solve them.
- Being in business means being an optimist, believing that you can succeed even when things are tough. (And they’re often tough!) But you should temper that with realism, ideally with others who are in business for themselves and can offer the skeptical, tough love that is often needed.
- Along those lines: You, your friends, and your family might love your product. But the only people who matter are your potential customers. Sometimes, a product you love, and which you believe deserves to succeed, won’t. Which hurts. It’s bad enough to fail, but it’s even worse to keep trying, when it’s clear that the world doesn’t want what you’re selling. You’ll have other, better ideas, and the failed product will help to make that next one even better.
- If you can pay money to save time, do it.
- Big, famous companies seem faceless, big, and bureaucratic — but they’re run by people, and it’s those personal relationships that allow things to get done. I’ve taught numerous courses at Fortune 50 companies in which most details were handled via simple e-mail exchanges. As an outside contractor, I’ve found that I encounter less red tape at some companies than many employees do.
- Learn how to learn new things quickly, and to integrate those new things into what you already know. I spend hours each week reading newsletters and blogs, watching YouTube videos, and chatting with Claude and ChatGPT in order to better understand topics that my students want to know more about.
- Acquire new skills: Over the last 30 years, I’ve gained the ability to speak Chinese, to solve the New York Times crossword, and to run 10 km in less than one. Each of these involved slow, incremental progress over a long time, with inevitable setbacks. Not only have these skills given me a great sense of accomplishment, but they’ve also helped me to empathize with my students, who sometimes fret that they won’t ever understand Python.
- I’ve benefitted hugely from the fact that people in the computer industry switch jobs every few years. When a company calls me for the first time about training, it’s almost inevitably because one of their employees participated in one of my classes at their previous job. Over time, enough people changing employers has been great for my business. This just motivates me more to do a good job, since everyone there is a potential future recommendation.
- It’s easy to be jealous of the huge salaries and stock grants that people get when they work for big companies. I might earn less than many of those people, but I work on whatever projects I want, set my own schedule, and have almost no meetings. Plus, I don’t have to please a boss whose interests aren’t necessarily aligned with mine. That seems like a pretty good trade-off to me.
- Not everyone can afford Western-style high prices. That’s why I offer parity pricing on my LernerPython subscriptions, as well as discounts for students and retirees. I also give away a great deal of content for free, between my newsletters and YouTube channel — not only because it’s good for marketing, but also because I feel strongly that everyone should be able to improve their Python skills, regardless of where they live in the world or what background they come from. Sure, paying clients will get more content and attention, but even people without any resources should be able to get something.
Finally: I couldn’t have made it this far without the help of my family (wife, children, parents, siblings), and many friends who gave me support, suggestions, and feedback over the years. Thanks to everyone who has supported me, and allowed me to last this long without a real job!
[Note: I also published this on LinkedIn, at https://www.linkedin.com/pulse/30-things-ive-learned-over-years-business-reuven-lerner-rxu4f/?trackingId=SSgKz7QDFlH3oCZp9uVghQ%3D%3D.]
Related Posts