"Software Developmers Career Guide and Soft Skills" book notes
Published at 2023-07-17T04:56:20+03:00
These notes are of two books by "John Sommez" I found helpful. I also added some of my own keypoints to it. These notes are mainly for my own use, but you might find them helpful, too.
,.......... ..........,
,..,' '.' ',..,
,' ,' : ', ',
,' ,' : ', ',
,' ,' : ', ',
,' ,'............., : ,.............', ',
,' '............ '.' ............' ',
'''''''''''''''''';''';''''''''''''''''''
'''
Table of Contents
Improve
Always learn new things
When you learn something new, e.g. a programming language, first gather an overview, learn from multiple sources, play around and learn by doing and not consuming and form your own questions. Don't read too much upfront. A large amount of time is spent in learning technical skills which were never use. You want to have a practical set of skills you are actually using. You need to know 20 percent to get out 80 percent of the results.
- Learn a technology with a goal, e.g. implement a tool. Practice practise practice.
- "I know X can do Y, I don't know exactly how, but I can look it up."
- Read what experts are writing, for example follow blogs. Stay up to date and spent half an hour per day trading blogs and books.
- Pick an open source application, read the code and try to understand it to get a feel of the syntax of the programming language.
- Understand, that the standard library makes you a much better programmer.
- Self learning is the top skill a programmer can have and is also useful in other aspects in your life.
- Keep learning skills every day. Code every day. Don't be overconfident for job security. Read blogs, read books.
- If you want to learn, then do it by exploring. Also teach what you learned (for example write a blog post or hold a presentation).
Fake it until you make it. But be honest about your abilities or lack of. There is however only time between now and until you make it. Refer to your abilities to learn.
Boot camps: The advantage of a boot camp is to pragmatically learn things fast. We almost always overestimate what we can do in a day. Especially during boot camps. Connect to others during the boot camps
Set goals
Your own goals are important but the manager also looks at how the team performs and how someone can help the team perform better. Check whether you are on track with your goals every 2 weeks in order to avoid surprises for the annual review. Make concrete goals for next review. Track and document your progress. Invest in your education. Make your goals known. If you want something, then ask for it. Nobody but you knows what you want.
Ratings
That's a trap: If you have to rate yourself, that's a trap. That never works in an unbiased way. Rate yourself always the best way but rate your weakest part as high as possible minus one point. Rate yourself as good as you can otherwise. Nobody is putting for fun a gun on his own head.
- Don't do peer rating, it can fire back on you. What if the colleague becomes your new boss?
- Cooperate rankings are unfortunately HR guidelines and politics and only mirror a little your actual performance.
The most valuable employees are the ones who make themselves obsolete and automate all away. Keep a safety net of 3 to 6 months of finances. Safe at least 10 percent of your earnings. Also, if you make money it does not mean that you have to spent more money. Is a new car better than a used car which both can bring you from A to B? Liability vs assets.
- Raise or promotion, what's better? Promotion is better as money will follow anyway then.
- Take projects no-one wants and make them shine. A promotion will follow.
- A promotion is not going to come to you because you deserve it. You have to hunt and ask for it.
- Track all kudos (e.g. ask for emails from your colleagues).
- Big corporations HRs don't expect a figjit. That's why it's so important to keep track of your accomplishments and kudos'.
- If you want a raise be specific how much and know to back your demands. Don't make a thread and no ultimatums.
- Best way for a promotion is to switch jobs. You can even switch back with a better salary.
Finish things
Hard work is necessary for accomplish results. However, work smarter not harder. Furthermore, working smart is not a substitute for working hard. Work both, hard and smart.
- Learn to finish things without motivation. Things will pay off when you stick to stuff and eventually motivation can also come back.
- You will fail if you don't plan realistically. Set also a schedule and follow to it as of life depends on it.
- Advances come only of you give more than asked. Consistency, commitment and knowing what you need to do is more key than hard work.
- Any action is better than no action. If you get stuck you have gained nothing.
- You need to know the unknowns. Identify as many unknown not known things as possible.
Hard vs fun: Both engage the brain (video games vs work). Some work is hard and other is easy. Hard work is boring. The harsh truth is you have to put in hard and boring work in order to accomplish and be successful. Work won't be always boring though, as joy will follow with mastery.
Defeat is finally give up. Failure is the road to success, embrace it. Failure does not define you but how you respond to it. Events don't make your unhappy, but how you react to events do.
Expand the empire
The larger your empire is, the larger your circle of influence is. The larger the circle of influence is, the more opportunities you have.
- Do the dirty work if you want to expand the empire. That's there the opportunities are.
- SCRUM often fails due to the lack to commitment. The backlog just becomes a wish to get completed.
- Apply work on your quality standards. Don't cross the line of compromise. Always improve your skills. Never be happy being good enough.
Become visible, keep track that you accomplishments. E.g. write a weekly summary. Do presentations, be seen. Learn new things and share your learnings. Be the problem solver and not the blamer.
Be pragmatic and also manage your time
Make use of time boxing via the Pomodoro technique: Set a target of rounds and track the rounds. That give you exact focused work time. That's really the trick. For example set a goal of 6 daily pomodores.
- Every time you do something question why does it make sense be pragmatic and don't follow because it is best practice.
- You can also apply the time boxing technique (Cal Newport) for focused deep work.
You should feel good of the work done even if you don't finished the task. You will feel good about pomodoro wise even you don't finish the task on hand yet. Helps you to enjoy time off more. Working longer may not sell anything.
The quota system
Defined quota of things done. E.g. N runs per week or M Blog posts per month or O pomodoros per week. This helps with consistency. Truly commit to these quotas. Failure is not an option. Start with small commitments. Don't commit to something you can't fulfill otherwise you set yourself up for failure.
- Why does the quota System work? Slow and consistent pace is the key. It also overcomes willpower weaknesses as goals are preset.
- Internal motivation is more important over external motivation. Check out Daniels book drive.
- Multitasking: Batching is effective. E.g. emails twice daily at pre-set times..
Don't waste time
The biggest time waster is TV watching. The TV is programming you. It's insane that Americans watch so much TV as they work full time. Schedule one show at a time and watch it when you want to watch it. Most movies are crap anyways. The good movies will come to you as people will talk about them.
- Social media is time waster as well. Schedule your Social Media times. For example be on Facebook only for max one hour on Saturdays.
- Meetings can waste time as well. Simply don't go to them. Try to cancel meeting if it can be dealt with via email.
- Enjoying things is not a waste of time. E.g. you could still play a game once in a while. It is important not to cut away all you enjoy from your life.
Habits
Try to have as many good habits as possible. Start with easy habits, and make them a little bit more challenging over time. Set ankers and rewards. Over time the routines will become habits naturally.
Habit stacking is effective, which is combining multiple habits at the same time. For example you can workout on a circular trainer while while watching a learning video on O'Reilly Safari Online while getting closer to your weekly step goal.
- We don't have control over our habits but our own routines.
- Routines help to form the habits, though.
Work-life balance
Avoid overwork hours. That's not as beneficial as you might think and comes only with very small rewards. Invest rather in yourself and not in your employer.
- Work-life balance is a myth. Make it so that you enjoy work and your personal life and not just personal life.
- Maintain fewer but good relationships. As a reward, better and integrated your life will be.
- Life in the present Moment. Make the best of every moment of your life.
- Enjoy every aspect of your life. If you want to take away one thing from this book that is it.
Use your most productive hours to work on you. Make that your priority. Take care of yourself a priority (E.g. do workouts or learn a new language). You can always workout 2 or 1 hour per day, but will you pay the price?
Mental health
- Friendships and positive thinking help to have and maintain better health, longer Life, better productivity and increased happiness.
- Positive thinking can be trained and be a habit. Read the book "The Power of Positive Thinking".
- Stoicism helps. Meditation helps. Playing for fun helps too.
Become the person you want to become (your self image). Program your brain unconsciously. Don't become the person other people want you to be. Embrace yourself, you are you.
In most cases burnout is just an illusion. If you don't have motivation push through the wall. People usually don't pass the wall as they feel they are burned out. After pushing through the wall you will have the most fun, for example you will be able playing the guitar greatly.
Physical health
Utilise a standing desk and treadmill (you could walk and type at the same time). Increase the incline in order to burn more calories. Even on the standing desk you burn more calories than sitting. When you use pomodoro then you can use the small breaks for push-ups (maybe won't do as good when you are in a fasted state).
- You can only do one thing, lose fat or gain muscles. Not both at the same time.
- Train your strength by heavy lifting, but only with a very few repetitions (e.g. 5 max for each exercise, everything over this is body building).
- If you want to increase the muscle mass use medium weights but lift them more often. If you want to increase your endurance lift light weights but with even more reps.
- Avoid highly processed foods
Intermittent fasting is an effective method to maintain weight and health. But it does not mean that you can only eat junk food in the feeding windows. Also, diet and nutrition is the most important for health and fitness. They make it also easier to stay focused and positive.
No drama
Avoid drama at work. Where are humans there is drama. You can decide where to spent your energy in. But don't avoid conflict. Conflict is healthy in any kind of relationship. Be tactful and state your opinion. The goal is to find the best solution to the problem.
Don't worry about other people what they do and don't do. You only worry about you. Shut up and get your own things done. But you could help to inspire a not working colleague.
- During an argument, take the opponent's position and see how your opinion changes.
- If you they to convince someone else it's an argument. Of you try to find the best solution it is a good resolution.
- If someone is hurting the team let the manager know but phrase it nicely.
- How to get rid of a never ending talking person? Set up focus hours officially where you don't want to be interrupted. Present as if it is your defect that you get interrupted easily.
- TOXIC PEOPLE: AVOID THEM. RUN.
- Boss likes if you get shit done without getting asked all the time about things and also without drama.
You have to learn how to work in a team. Be honest but tactful. It's not too be the loudest but about selling your ideas. Don't argue otherwise you won't sell anything. Be persuasive by finding the common ground. Or lead the colleagues to your idea and don't sell it upfront. Communicate clearly.
Personal brand
- Invest your value outside the company. Build your personal brand. Show how valuable you are, also to other companies. Become an asset.
- Invest in your education. Make your goals known. If you want something ask for it (see also the sections about goals in this document).
Market yourself
- The best way to market yourself is to make you usable.
- Create a brand. Decide your focus. Throw your name out as often as possible.
Have a blog. Schedule your posts. Consistency beats every other factor. E.g. post once a month a new post. Find your voice, you don't have to sound academic. Keep writing, if you keep it long enough the rewards will be coming. Your own blog can take 5 years to take off. Most people give up too soon.
- Consistency of your blog is key. Also write quality content. Don't try to be a man of success but try to be a man of value.
- Have an elevator pitch: "buetow.org - Having fun with computers!"
- Have social media accounts, especially the ones which are more tech related.
Networking
Ask people so they talk about themselves. They are not really interested in you. Use meetup.com to find groups you are interested and build up the network over time. Don't drink on social networking events even when others do. Talking to other people at events only has upsides. Just saying "hi" and introducing yourself is enough. What worse can happen? If the person rejects you so what, life goes on. Ask open questions and no "yes" and "no" questions. E.g.: "What is your story, why are you here?".
Public speaking
Before your talk go on stage 10 minutes in advance. Introduce yourself to the front row people. During the talk they will smile at you and encourage you during your talk.
- Try at least 5 times before giving up public speaking. You can also start small, e.g. present a topic at work you are learning.
- Practise your talk and timing. You can also record your practicing.
Just do it. Just go to conferences. Even if you are not speaking. Sell your boss what you would learn and "this and that" and you would present the learnings to the team afterwards.
New job
For the interview
- Build up a network before the interview. E.g., follow and comment blogs. Or go to meet-ups and conferences. Join user groups.
- Ask to touch base before the real interview and ask questions about the company. Do "pre-interviews".
- Have a blog, a CV can only be 2 pages and an interview only can last only 2 hours. A blog helps you also to be a better communicator.
If you are specialized then there is a better chance to get a fitting job. No one will hire a general lawyer if there are specialized lawyers available. Even if you are specialized, you will have a wide range of skills (T-shape knowledge).
Find the right type of company
Not all companies are equal. They have individual cultures and guidelines.
- Startup: dynamic and larger impact. Many hats on.
- Medium size companies: most stable ones. Not cutting edge technologies. No crazy working hours.
- Large company: very established with a lot of structure however constant layoffs and restructurings. Less impact you can have. Complex politics.
- Working for yourself: This is harder than you think, probably much harder.
Work in a tech. company if you want to work on/with cutting edge technologies.
Apply for the new job
Get a professional resume writer. Get referrals of writers and get samples from there. Get sufficient with algorithm and data structures interview questions. Cracking the coding interview book and blog
- Apply for each job with a specialised CV each. Each CV fits the job better.
- Best get a job via a personal referral or inbound marketing. The latter is somehow rare.
- Inbound marketing is for example someone responds to your blog and offers you a job.
- Interview the interviewer. Be persistent.
- Create creative looking resumes, see simple programmer website. Action-result style for a resume.
Invest in your dress code as appearance masters. It does make sense to invest in your style. You could even hire a professional stylist (not my personal way though).
Negotiation
- Whoever names the number first loses. You don't know what someone else is expecting unless told. Low ball number may be an issue but you have to know the market.
- Salary is not about what you need but what you are worth. Try to find out what you are worth.
- Big tech companies have a pay scale. You can ask for this.
- Don't tell your current salary. Only do one counter offer and say "If you do X then I commit today". Be tactful and not rude. Nobody wants to be taken advantage of. Also, don't be arrogant.
- If the company wants to know your range, respond: "I would rather learn more about the job and compensation. You have a range in mind, correct?" Be brave and just pause here.
- Otherwise, if the company refuses then say "if you tell me what the range is and although I am not yet sure yet what are my exact salary requirements are I can see if the range is of what I am looking for. If they absolute refuse give a high ball range you would expect and make it conditional to the overall compensation package. E.g. 70k to 100k depending on the compensation package. THE LOW END SHOULD BE YOUR REAL LOW END. Play a little bit of hardball here and be brave. Practise it.
- Put 10 percent on top of the salary range into a counter offer.
- Everything is negotiable, not only the salary.
- Job markup rate: Check it regarding the recruitment rate negotiation.
- Don't make a rushed decision based on deadlines. Make a fairly high counter offer shortly before deadline.
- You should also cope with rejections while selling yourself. There is no such thing as job security.
- Never spilt the difference is the best book for learning negotiation techniques..
Leaving the old job
When leaving a job make a clean and non personal as possible. Never complain and never explain. Don't worry about abandonment of the team. Everybody is replacement and you make a business decision. Don't threaten to quit as you are replaceable.
Other things
- As a leader lead by example and don't lead from the Eiffel tower.
- As a leader you are responsible for the team. If the team fails then it's your fault only.
Testing
Unit testing Vs regression testing: Unit tests test the smallest possible unit and get rewritten if the unit gets changed. It's like programming against a specification n. Regression tests test whether the software still works after the change. Now you know more than most software engineers.
Books to read
- Clean Code
- Code Complete
- Cracking the Interview - Lessons and Solutions.
- Daniels Book "Drive" (about internal and external motivation)
- God's degree (inventor of Dilbert)
- Head first Design Patterns
- How to win Friends and influence People
- Never Split the Difference [X]
- Structure and programming functional programs
- The obstacle is the way [X]
- The passionate programmer
- The Power of Positive Thinking (Highly religious - I personally don't like it)
- The Pragmatic Programmer [X]
- The war of Art (to combat procrastination)
- Willpower Instinct
E-Mail your comments to paul@nospam.buetow.org :-)
Other book notes of mine are:
2023-03-16 "The Pragmatic Programmer" book notes
2023-04-01 "Never split the difference" book notes
2023-05-06 "The Obstacle is the Way" book notes
2023-07-17 "Software Developmers Career Guide and Soft Skills" book notes (You are currently reading this)
2023-11-11 "Mind Management" book notes
2024-05-01 "Slow Productivity" book notes
2024-07-07 "The Stoic Challenge" book notes
2024-10-24 "Staff Engineer" book notes
Back to the main site