Learning and completing your course on a programming language is one thing on it’s own. But gaining experience on what you’ve learned is by practice, persistence and consistency. Persistence may include exploring what you’ve learned to know the more there is for you to learn; it could also be a trial-and-error process. But by all means, having what you’ve laerned stick around for so long, knowing its flaws, its covert peculiarities, is not a magical thing that happens in a day. It can be imagined to be an infinite process of “metamorphosis”—knowing you could be back to where you started at anytime. Like a Ouroboros: You could be back searching an answer to a question you once asked—the purple link effect.
Experience is an important criterion to look out for in any profession. Two things will forever hold true:
- You can’t learn it all.
- You can’t know it all.
As long as you can’t learn it all, you can’t also know it all. That you don’t know it all means you didn’t learn it all.
Experience is the practical knowledge, skill, or practice derived from direct exposure to a circumstance.
Experience is a different thing compared with exposure. Exposure must first be established before experience can be gained.
A lot of developers are exposed to various languages yet inexperienced. They did work in the environment of such languages, but have failed at acquiring experience in such environment. Experience helps know beyond what you have been taught, it is the things you learnt on your own, at a difficult time in a difficult way, when you had little or no help. Gaining experience is a thing that happens forever; the institution of experience is one you can’t graduate, but can only drop out from.
There are many ways to gain experience—choose from the list.
- Continuous Practice.
- Asking questions.
- Sharing problems.
- Solving others’ problem.
- Playing around.
Listed above are the most tectonic ways to progressively gain experience in a programming language.
Imagine you were an English man who regularly spoke English, then you had to learn French and could speak it fluently. For a period of 10 years you never spoke French. You were caught up in an event where you, speaking French was really much appreciated. I sure hope you just found out you’ve lost fluency and you are a wee bit old fashioned. That is what happens when you abandon a programming language. But constant use of the language exposes you to all dimensions of the language.
Curiosity! That’s the key to true learning. There are no answers when there are no questions like “why”, “how”, etc. In fact in the tech world the phrase “how to” is the most abundant on the web/search engines. Asking why something has reacted in an unexpected way from experienced persons, makes you one of the experienced persons.
Sharing problems within the community or forum get the attention of enthusiastic programmers. Which helps distribute learning and experience gaining in the community. It is common to say “a problem shared is half solved”. I will also say “a problem shared, is a tour to gaining experience”.
This is the other side to the “sharing problems” coin. When you attempt to successfully solve someone else’s problem, you must have made that person’s problem your own problem. This problem may be something you’ve never seen, but putting it down, you surely have learned something new which adds to your experience store.
This is something you can always do at leisure. Mix some unreasonable codes in a reasonable manner. So you learn combinations that can work and those that will successfully fail. More like a trial-and-error. Just keep tweaking.
You won’t get a developer job you are expected to deliver in due course and it’s just then you want to do your trial-and-error thing or use some code mix you’ve never tried before. Time is a luxury no one wastes, especially clients. They don’t want to know how, just get it done.