Startups: 1) The goal is to make money, not build something. Focus on that. 2) It typically takes a long time (many months or years) to create a business. Be patient, stick with it. Think of it as a marathon, and an experiment.
Courses, e-books: 1) There's much more involved in their creation as what you initially think. It'll take much longer to build than you imagine (if you're about doing a proper job) 2) They won't sell themselves, you need marketing channels. 3) the trick with courses / books is to build audiences and funnel the audience into them. You can do this by creating free books / courses and upselling collected emails, or by collecting emails from other places / affiliating and collaborating. So don't count on a single book / course from making you so much money you can quit work. Build a series of books / courses instead - you'll see the results of compounding.
Before I started my career, I thought there was a point where products mostly built themselves. Coding changed that.
When I was in engineering, I thought there was a point where products mostly sold themselves. Sales changed that.
When I was in sales, I thought there was a point where the message mostly spread itself. Marketing changed that.
When I started my own company, I thought there was a point where most of the business ran itself. I certainly never reached that point.
The main insight here is that people don't need more software. There are a lot of people out there that can validate whether your product is cool, or provides something that nobody else does, or that there is a pain point they're currently working around. But especially in B2B, most people aren't in the business of buying software.
To get around this, you need to paint the picture of what life will be like after they've bought your software. With good products, this can be as easy as explaining it to them, then helping them rally the support to sign the $25,000 check to purchase the software. With less good products, this can mean doing providing real, actionable advice that the software sort of supports.
I'll give you an example. I used to sell performance monitoring software: think of New Relic or Datadog, but better for distributed environments. This is pretty crucial for bigger teams, as performance problems tend to cross ownership boundaries. Most engineers believe that performance is important. However, it is not easy to convince any given engineer to make performance their crusade, especially their crusade across multiple teams. So not only do they have to be convinced the product is easy to set up and maintain (a good onboarding flow in product can do most of this for you), but you also need to educate them on how to sell this to their boss and how to evangelize this to other teams. Or go evangelize for them. Our best customers had one person who was fired up about what we did, but a lot of their help was to point us to the right 5 people in their organization that might also care about performance.
Freemium helps here, but if the main problem is "getting my coworkers to care sounds hard", freemium and frictionless signup will never be the answer. So you need to sell the product, even if it's something the organization desperately needs.
I say it jokingly but early on -- I gained quite a reputation among people far smarter than I am, for being able to solve the most difficult problems.
But I never really did anything other than read. And most of the time I never had to go beyond the documentation.
The trick I guess, is to slow down and really read. There is no shortcut to understanding. And there is no solution without understanding.
- RTFM
- Slow is smooth, smooth is fastR.T.F.M. and you ahead of 99.999999..% on anything (compared to the whole earth population on one specific topic)
Googling for immediate answers on Stack Overflow is not reading and doesn't lead to understanding. It's "fast food calories" for your mind, and if one solves every problem that way, it's like eating at McDonalds for every meal.
Wait a minute... does it come with a docunentation? Hell no - like any other piece of code you come across at work. Who writes documentations anymore???
What this has allowed me to do is 1) recognize that I'm really not a failure because I can't do X, just that I haven't yet gotten experience with X, so I need to read and play/experiment with X more (and therefore there's pretty much nothing that I or anyone else _can't_ do with enough experience), and 2) learn how to better talk to my coworkers and technical friends so as not to say things that might make them feel impostor-y (because there are definitely things other say that will set off that anxiety in my brain, even unintentionally). I feel like both of these things have allowed me to be more effective and productive at work.
Everyone is just at different stages of learning. When you've been doing this long enough, you've forgotten a lot you knew before. At some level, 'refreshing your memory' about what your forgot is not much different than learning it the first time.
1) almost no company will just up and fire a developer without warning, even in "right to work" states. A company will always
2) have the manager or HR talk to the developer to try to resolve a performance issue. It's cheaper than firing and rehiring a new developer. It also saves time.
Now, because of these two factors, I realized that if my performance were an issue, my manager or HR would have a meeting with me to address the situation. The fact that such a meeting has never come up means the company is satisfied with my performance. So, if there's a down day at work, then I don't feel so guilty about surfing the web reading up on new languages or techniques, even if everyone else (usually in different departments) are on a tight deadline.
Another thing I've learned (not at work) are the three rules for dealing with worrisome situations. Given you are worried about some situation:
1) Can you do anything about it now? If so, do something about it and stop worrying.
2) Can you do anything about it later? If so, wait til later and stop worrying about it.
3) Can you do nothing about it? Don't worry about it because there's nothing you can do.
Plan accordingly.
Hmm, I've been fired from my last two positions without any warning or prior notice. In the first instance, I was a full-time employee and I got stuck on a piece of functionality and I was simply let go. I made co-workers aware of the fact that I needed some sort of help, but one day after a prolonged period of being denigrated, I was let go. When asking how come no prior warning was given, I was told "you could see it coming."
The most recent position was as a consultant and I was working with deadlines that had slipped for a number of reasons mostly outside of my control and I had to handle numerous support requests in addition to that -- which led to a severe case of burnout. My contract was abruptly terminated one day, without prior warning.
I took what I could from both experiences and improved my skills as much as I could, but there is always the domain-specific hurdles that arise.
My point is that there are some companies out there that are ruthless, so far in my experience it seems that this mostly applied to the smaller ones. I never oversold myself or my skills and I did ask for a second opinion when I felt things were taking too long. It could just be my luck thus far.
This feels more like the exception than the rule - especially if they are willing to spend a whole day denigrating you. Obviously, I don't have the same context as you on this, but I have never seen someone get let go suddenly for poor technical performance.
2. It's infinitely easier to produce excellent results when you like the job you're in. You may never find "The perfect job" but the closer the match to your skills, the better.
3. You'll be amazed at how few people give a sh*t about your new startup.
4. Paychecks are addictive. Then often essential. If you want to start your own business, try not to become dependent.
5. Learn to recognize The Dips from the cul-de-sacs (http://guykawasaki.com/the_big_dip_ten/).
When you are just starting out, get good at a tangible skill that people will pay you for, and which will let you play in the arena where you ultimately want to be. For me, it was IT development, even though I had a business background.
If you are in technology, or work as a developer, work in a non-tech firm that leverages technology, rather than in a technology firm. It will be easier to stand out, and your contributions will be held in much higher regard. This point was actually made by Zed Shaw in one of his books, and although he took some flack for it, it's actually very good advice. I've seen it play out a number of times.
1. You work for your direct report not for the company's mission.
2. You leave your manager, not your job.
3. People got to management at some point based on the amount of words that came out of their mouths. The more words the more "visibility"
Startups - Anarchy
1. Warm referrals - we value your network because who cares about your product???
2. "We just got $30 million in series B, you should come work for us you'll be engineer #4, with close to zero equity (sorry we took all the risks already) but you'll get a competitive base-salary! We're backed up by sequoia, etc. Oh... and we're building the next eCommerce t-shirt website!"
3. "Do you want to become my cofounder I have the best idea that will change the world! I'll be the CEO working on the idea and you'll build the rest. You'll be the developer!"
These are my highlights over the past 10 years.
When you're working, look to take the initiative when you can and always try to over deliver. Work hard and find opportunities to take leardership roles on something. Good managers will encourage this. But don't be annoying, look for real needs you can fill.
Talk to your manager very explicitly and figure out your career path. You can and should talk to your manager about exactly what it takes to get to take the next step in your career; a good manager will define this very clearly. Then, I'd say every 2-4 1on1s with your manager, check in on your progress. This is also a good opportunity for for him/her to point you to additional learning resources to get there. You should do something similar with other members of your team, especially those you respect the most. It also doesn't hurt to ask everyone what they're favorite books and blogs are.
Being on strong teams and working on complicated problems is key. Once you feel like you're not learning a lot anymore, make a career change. Early on in your career, I think your rate of learning should be the main factor in changing jobs. Change a few times early on (1-2 years a job), I thinks is also very healthy since you get exposed to some different environments/perspectives.
Asked this in 1-1 with my manager yesterday. Got mostly vague answers. I feel it's easier to get both raise and next level by changing companies then trying internally. Have seen good people leave the company, they'd Hire from outside and give that person raise/promotion + the additional training and time to ramp up.
Don't let it dominate your life, of course, but you are unlikely to make money unless you actually want to, and you are unlikely to build a successful business without actually making money somewhere along the way.
There's nothing wrong or distasteful about money. It's a neutral substance with a lot of good uses.
1.security 2.comfort 3.rich
I will go to school and get a degree, get a nice and stable job. Buy a house (mortgage) a car (loan) then in my spare time, i'll try to launch my business! I want to get rich so bad! Life is tough...
Rich people simply think the other way
1.rich 2.comfort 3.security
Why would I spend most of my time working on things that are not inline with my goal? I'll buy a house and pay cash when I'll get rich. Let's go get that money!
I would say it's very dependent on culture.
"In Business As in Life, You Don't Get What You Deserve, You Get What You Negotiate"
Yes, that's the name of the book, just google it. :)
But I have most definitely found this to be true. While it is sometimes the case that good deeds are rewarded, to really get what you want and to go beyond what you thought was your potential you need to be assertive and go after things. Negotiate for yourself rather than waiting around for something to happen. Push the boundaries.
- For me, doing what I am good at makes me happy.
- "what I am good at" is often very different from what I think I will be good at, or what I think I should be good at, or what I would like to be good at.
- I find working on big, daunting, time-bound things where I need to educate myself to deliver on, very rewarding (not necessarily easy and not necessarily fun).
- The right job for me is a mix of doing things that make me happy, and doing things that I find rewarding.
These are all broad generalizations but they are derived from my career. I worked in the music industry as a technologist for many years, and because I'm also a musician, I thought I should be happy doing this. I wasn't. I moved to working at an investment bank, the work was a mix of very challenging things that were a huge stretch for me, and also specific technical things that I was very good at delivering. I loved it, my career took off, and has been great since (I've done a number of different things after said investment bank).
Superficially, you wouldn't think that a person like me would be happy working in a large bank, but it turned out I really liked it, and was great at it. and if you met me, you would have thought I'd have loved the music industry, but I didn't, and didn't do very good work as a result.
- The core value of a company is its assets (market & placement, employees, financial situation) and its ability to execute iterating upon a product. If a company is in a changing market or is a startup the value is nearly wholly driven by the later. There are hacks around this, but they are rarely pretty or pleasant. This is "the" hard problem in making money.
- Big corporates are almost entirely dysfunctional. It beggars belief but its true. The simple fact is the markets are so mature that they don't need to do much beyond a few basic, core, routine actions. All they can do is fail from here, so everyone inside are afraid of doing something wrong instead of failing to do something.
- Always, always go the extra mile for people, loose gracefully, be nice - even when the situation is completely unfair. Your time will come, and when it does you will have gained an undervalued but lucrative chip. The moral high-ground :)
- In addition to being the right thing to do, playing nice and paying it forward are great strategies in business
Personal:
- Given a task find out its context/goals. You may have been asked to do the wrong thing.
- For most, your mentor's will have the largest impact on your career. Find good ones.
- Don't be responsible for surprises. If you see something strange - shout.
- Be methodical in whatever you do: Analyse. Record. Measure.
- If you need a raise ask, but have your line in the sand.
- Read, research. Know your stuff.
- Ask questions. Speak up.
You will come across many very competent people with only a few years of experience, who are still at the bottom of the ladder due to how organisations are structured rather than a lack of ability.
Understanding this is key to overcoming impostor syndrome.
I audited a few classes and the difference in student behavior was immediately evident. They freely questioned assertions or topics that didn't make sense! At my first university students would just muddle on and hope to figure things out as exams approached.
That little experience changed the way I approached learning and life in a massive way.
Seriously, I was one who used to sneer at the advice, thinking I can handle multiple things and by trying several things in parallel I increase my chances. Boy, was I wrong!
Pick one and only one battle (market), and fight it with all you have. Iterate quickly.
It's good and normal to ask people who might know, or research the answer. But sometimes the quickest way to learn is doing the thing naively, and then asking yourself what worked and what didn't.
Don't let your own second-guessing remove your confidence in what you're doing, or slow you down to the point of inaction.
Shakespeare was right: we are poor players that strut our hour upon the stage and are heard no more.
When I started programming, 1968, minimizing these was the core value used in judging how good a programmer you were. This has not changed in many people's minds. Once I stopped caring, my imagination became free to consider doing things others wouldn't even consider. One program ran for three days. People thought I must be brilliant because of the unheard of things I was doing. Nope. I was just uninhibited by these hobgoblins of the past. I wasn't even a very good programmer.
I do admit there are situations where this principle doesn't really apply.
"No, stop fucking around, do it right."
Part 2: if you want a big raise, get a new job (then get another new job for yet another big raise, etc.)
"We don't have a tech blog"
"This process is annoying"
"No one has fixed X yet"
You earn a lot of recognition if you make yourself that person.