Please enable JavaScript.
Coggle requires JavaScript to display documents.
Apprenticeship Patterns (Always keep learning, it is a continuous…
Apprenticeship Patterns
What is apprenticeship?
Always evolving, wanting to be better/smarter/faster
-
-
Keeping an open mind
Your first language
-
Learn through solving a specific problem, to give it real-life context. Don't be vague.
Use test-driven development to clarify your understanding. Work incrementally in steps relevant to your understanding of the language. Start small and get bigger.
-
If a thorough book like Effective Java exists for the language, read it through.
After learning your first language, move on to one which is radically different in some way. e.g. Python → Haskell
-
Unleash your enthusiasm
-
-
Allows you to bring fresh perspective, even though you are not necessarily productive
Learn concrete skills
Some examples:
-
Popular open-source frameworks (Struts, Hibernate)
-
-
-
Expose your ignorance
People rely on you. Even though you don't know everything, show them that you are capable of learning and that it is an important part of the process.
Ask questions, even when difficult
-
-
The Deep End
Take challenging opportunities, even if the risk of failure is higher
-
Craftsmanship is a long term goal, lifelong.
-
Craft over Art
-
Your product must be useful, but not always beautiful.
Sustainable Motivations
-
There will be times when you question if you should be doing it any more, but they will pass.
Sometimes you will have to make tough decisions in order to sustain your interest. e.g. taking a lower paid job with a technology you're interested in
Nurture your passion
Do things in your spare time that will allow you to maintain your interest in the world of software development
Don't give in regularly to things that might destroy your passoin. e.g. late leaving work, abusive meetings, delpoying shoddy code
-
-
Self-assess accurately. Do not be satisfied by your successes, don't stay in mediocrity.
Be the worst
-
More experienced team members can make you feel smarter than you are. Make sure you are reflecting as you work. Try things on your own to accurately gauge your skill.
-
This can make you feel bad about yourself. Make sure to build feedback to see if you are falling behind and how you can improve.
-
-
Always keep learning, it is a continuous requirement of the industry
Don't wait for favourable conditions to start something. Successful people start things no matter the conditions. Don't wait, do.
Expand your bandwidth
-
-
-
-
-
-
Use sparingly, your development efficiency will slow when you use this pattern
-
Practice, practice, practice
-
-
-
Practice makes PERMANENT, so be careful what and how you are practising. Keep evaluating and creating feedback loops
Breakable Toys
-
Create environments in which you can fail by building toy programs in the same/similar tech stack to work's
Make the toys relevant to your life/the things you do, e.g. a wiki or address book.
Feel free to over engineer the solution, so that you can try out new features of the tech stack and have more opportunity to fail.
-
Reflect as you work
-
-
-
Personal Practices Map
-
-
-
Observe those with more experience, discover novel ideas by reflecting on their practices.
Your goal is to become skilled, not experienced. Inspect, adapt, and improve your working habits
Record what you learn
Regularly go back to read what you've written in your notes/blog/wiki etc. Do not let them be a place for information to die.
Share what you learn
-
-
Your limited knowledge keeps things short and to the point, and you don't assume people's knowledge. Create the content you wish you had when you were starting out.
When one person teaches, two people learn
Create feedback loops
Make sure you are regularly getting objective feedback. This helps you stay aware of your incompetence.
Ask people how you are doing. e.g. ask an interviewer why they rejected you. This is valuable information that could reveal something new.
Useful feedback is the kind that you can actually act upon. You must be able to do something about it.
Feedback tells you to either do more or less of something. Learn to be able to quickly discern if you should be doing more or less of things so that you can keep a balance.
-
Learn how you fail
-
-
Some things you just have to accept you will never be good at, because they take a disproportionate amount of time to address
-
-