今日推薦開源項目:《滾動效果改 rallax.js》
今日推薦英文原文:《Your Knowledge Portfolio as a Software Developer》
今日推薦開源項目:《滾動效果改 rallax.js》傳送門:項目鏈接
推薦理由:這個項目是一個純 JS 實現的視差滾動效果,只需要幾行代碼就能為指定的 html 元素提供視差滾動的效果。同時還支持速度和移動端可能的禁用等等個性化設置,並且其 API 除了基礎的速度相關之外還提供了在滾動前進行條件判定,從而實現更精細的滾動操作。
今日推薦英文原文:《Your Knowledge Portfolio as a Software Developer》作者:Lajos Deme
原文鏈接:https://medium.com/better-programming/your-knowledge-portfolio-as-a-software-developer-6d1eb11ee221
推薦理由:用管理企業的觀點管理知識儲備
Your Knowledge Portfolio as a Software Developer
Learn to treat your knowledge as a business
This article is my take on the chapter with the same title from the brilliant book The Pragmatic Programmer. You should absolutely give that a read if you haven』t already.I often use programming or investing analogies when I talk about real-life stuff. Using investing analogies to talk about programming stuff is super fun for me, and hopefully, it will be fun for you too.
1. Serious Investors Invest Regularly — As a Habit
Your most important asset as a software developer is the knowledge and experience stored inside your brain. However, this is an expiring asset. With the technology landscape evolving at breakneck speed, if you don』t attend to this regularly, its value will diminish year by year.Unfortunately, you can』t just lay back and let your current investments earn dividends for you. You constantly have to rebalance your portfolio and, most importantly, invest more than you take out.
In other words, always be learning something new. The most important thing is to build a habit of lifelong learning. Here are a few goals that I am for:
Learn at least one new language/technology each year
I don』t mean become an expert in a new language or technology every year, but seeing different approaches that solve similar problems is a great way to become a better developer.The skills you pick up along the way will probably prove useful even if you don』t plan to earn a living coding in that language.
Your options for learning a new language are basically limitless, including free YouTube tutorials, paid online courses, technical books, and blog posts.
I lay out my decision-making process for picking new languages to learn below.
Constantly deepen your knowledge about the field/programming language that you work in
While learning new technologies is fun, it』s also important to continuously expand your knowledge in the technology/programming language that you mainly work in.For me as an iOS developer, that means reading at least one technical book about iOS development/Swift every three or four months, playing around with technologies that are outside my comfort zone, like ARKit or SpriteKit, and constantly being on the watch for new iPhone features and Swift language improvements.
Because it』s impossible to know everything about a certain piece of tech or language, this becomes a neverending journey towards mastery.
Read at least one technical blog post every day
While you need to make big plans like learning a new language or reading a huge book, you also need small wins to keep you motivated.I found that the best way to do this is to read at least one programming blog post on Medium every morning while I』m having breakfast. It』s a brilliant way to acquire small snippets of knowledge, deepen my understanding of Swift and iOS bit by bit, take quick peeks at different technologies, and start every day with a sense of accomplishment.
2. Diversification Is the Key to Long-Term Success
The more different technologies you』re comfortable with, the better.You should not limit yourself to one programming language, for example, because it might become irrelevant in the future, and then you』re left with expert knowledge that nobody wants to pay for anymore.
Having a well-diversified knowledge portfolio is a natural consequence of adhering to the points I laid out above.
However, I believe a word of caution is appropriate here. You should be careful not to over-diversify. If you』re like me, you find almost every new piece of technology or API interesting and just want to dive deep straight into them. I don』t think that this is such a good idea because you would spread yourself too thin, knowing the basics of many things but not enough to do meaningful work with any of them.
As with everything else in life, the best approach is to construct a great plan, in which you map the technologies that you want to learn on a timeline. After that, all you have to do is stick to the plan.
If you』re able to diversify across fields, too, that』s even better. It pays handsomely if, although you are a developer, you』re also able to design a user interface or you』re well versed in marketing.
3. Smart Investors Balance Their Portfolios Between Conservative and High-Risk, High-Reward Investments
I think you should strive to be an expert in a technology that pays a nice salary in the present while having a few bets on technologies that might become huge a few years or decades from now.On the conservative side, I have iOS and full-stack web development. I currently work as an iOS developer, but I love doing web development for personal projects, businesses I want to build, or simply for pure fun.
On the aggressive (risk-wise) side, I have distributed ledger technology (not to be confused with cryptocurrencies) and smart contract development. I think these technologies are too young to say anything about them with confidence, but they definitely have a huge potential to transform society, so they might reap great rewards for the savvy knowledge investor in the future.
My rule of thumb for picking programming languages to learn is based on the intelligent balancing of risk. I try to have on my agenda a well-established, widely used, popular language or technology that currently solves a lot of important problems paired with another one that currently does not solve any real problems but has a great possibility of doing so in the future.
4. Investors Try to Buy Low and Sell High for Maximum Return
This point is directly related to the previous one. You should aim to find emerging technologies and learn them before they become popular.「Learning Java when it first came out may have been risky, but it paid off handsomely for the early adopters who are now at the top of that field.」— The Pragmatic ProgrammerThis is by no means easy, but if you can find the programming equivalent of an undervalued stock, you could be on the path to success.
This should not be an emotional decision nor a matter of personal taste. You should analyze the landscape』s present and future based on factual data.
You also probably already know something — thanks to your interests or education outside software development, or the events of your life that shaped your worldview — that many other people don』t know or would disagree with.
In my opinion, these are the things that can help you find your next knowledge investment.
5. Portfolios Should Be Reviewed and Rebalanced Periodically
It goes without saying that — with technology changing at the speed of light — if empirical evidence indicates that your past assumptions are incorrect, you should readjust those assumptions.It might become obvious that some technology clearly won』t fulfill your expectations. No worries because you treated it as a high-risk investment in the first place. You still have your conservative investments to rely on. But at this point, it』s useless to spend more time on it. Just cut your losses, review and rebalance your knowledge portfolio, and move on.
If you see some of your conservative investments starting to have diminishing returns, you might want to consider creating a plan to retire them and find a successor.
Final Thoughts
Thank you for reading this article, and I hope you got some value out of it.If you disagree with some of the guidelines I』ve mentioned or have some ideas or suggestions, I』m curious to hear your thoughts in the comments.
下載開源日報APP:https://openingsource.org/2579/
加入我們:https://openingsource.org/about/join/
關注我們:https://openingsource.org/about/love/