• 开源镜像
  • 开源沙龙
  • 媛宝
  • 猿帅
  • 注册
  • 登录
  • 息壤开源生活方式平台
  • 加入我们

开源日报

  • 开源日报第611期:《传说的最小 brainfuck-visualizer》

    16 11 月, 2019
    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《传说的最小 brainfuck-visualizer》
    今日推荐英文原文:《How to master your creativity》

    今日推荐开源项目:《传说的最小 brainfuck-visualizer》传送门:GitHub链接
    推荐理由:Brainfuck,传说中最小的编程语言,只一机,一指针,八命令而已。这个名字大概是因为它的代码真的很难读懂吧……这个项目使用 JS 将这个传说中的编程语言进行解释并可视化执行过程,有了清晰明了的执行过程之后反而很容易理解它的操作原理,那些看似不明所以的命令仅仅只是对数据块进行操作和输出而已。

    今日推荐英文原文:《How to master your creativity》作者:Laura Sima-Sirban
    原文链接:https://medium.com/@simasirban.laura/how-to-master-your-creativity-30fc04ca7c68
    推荐理由:寻找更多的创造性,特别是在需要想法的时候

    How to master your creativity

    What can you do to be creative?

    This question popped up in my mind when I was in university, trying to figure out what makes a good designer. Back then, I thought that creativity and being more creative is the answer to that question.

    While I’m yet to figure out what makes a good designer, I learned two big things about creativity.

    First — creativity is super important. In a world where the future is pretty uncertain and where we need to reinvent ourselves a few times, professionally or personally, creativity is key.

    Second — creativity is not restricted to artistic professions. Whether you’re a programmer, data analyst, doctor, scientist, architect or what have you, creativity can definitely help you be a better professional.

    The problem is that we never learn how to be creative. We spend our time in school with standard subjects like mathematics, literature, physics, history or geography, etc. But we don’t have a subject to help us tap into or to develop our creativity.

    Back when I got started, creativity seemed like this magical, mystical thing. It depended mostly on random flights of inspiration. If those are not there, well, then good luck.

    In reality, creativity is hard work and a specific mindset. The more you practice, the better you get at it.

    Along the way, I also discovered a few ideas that can help you master your creativity.

    Lose the fear

    If you’re wondering why this is first, consider this: How can you do good creative work when you’re dedicating mental space to negative scenarios? How can you come up with something truly original if you’re scared of it?

    Creativity requires focus and dedication. If you really want to create something innovative and original, you need to put in the effort. Building up doomsday scenarios and doubting yourself makes the job a lot more complicated.

    We’re all scared of something when it comes to the work we put out there. For me, it was the fear of being wrong for a long time. Because of that, I’d go with slightly obvious ideas, which were pretty unremarkable, to put it mildly.

    Fear is not a catalyst for creative work. It undermines your self-confidence, as you continuously wonder if you’re good enough. It also keeps you from trying things that might actually be good because… what if?

    But if you’re really out to create something original, you’re bound to stumble into a few blunders along the way.

    The thing is you only have control over how you react to things. Instead of making up doomsday scenarios, think of what you can learn from things that didn’t go so well. Think of what you can do to bring your ideas to life. This way, it’s easier to stay focused and avoid spiraling.

    Keep an open mind and don’t judge yourself. You might be surprised by what you can accomplish if you lose fear and…

    Embrace experiments

    One of my favorite books on creativity is “Creativity, Inc “ by Ed Catmull. Drawing on his experience at Pixar, Ed Catmull gives some insight into their creative process. When Pixar starts working on a new movie, they always start with a broad idea of what they want to accomplish. From there on, they just try out things to see which ones work. They never know what the story will look like until it’s finished.

    A good part of mastering creativity is about embracing experiments. Combine, learn, connect different things — things that might not seem that closely related at first. Even if it seems dumb in the beginning, go with it for a while, see where that takes you.

    To start, you just need an idea of what you want to accomplish. How you get there and what happens along the way, that’s up to you to discover. And you don’t know what cool new things you find along the way.

    Experiments are a good way of trying out different things until you find the one that’s best.

    Don’t hold on (too tight) to definitions

    Probably you’re familiar with this: “I don’t know/want/shouldn’t know how to do this or that, I’m just a (insert your job title)”. For example: “I don’t know how to paint, I’m a doctor.” Or “I don’t know how to write, I’m a programmer”

    Well, newsflash: you’re not your job title. Even if you hold a specific position, that doesn’t define what you can and cannot do. That’s up to you to decide.

    It might be harder in the beginning because we tend to identify a lot through our careers and our jobs. Yet, we shouldn’t use those as excuses or as definitions of who we are and what we’re capable of.

    This is one of the best things I learned from a previous job. We didn’t have job descriptions, we had responsibilities. That meant I got to work in various areas, learning new skills along the way. The best part about this that, after a while, I got to see how different dots connect, along with the whole picture.

    We often celebrate it when people look outside of their boxes for new solutions and for new ideas. What about if we stopped building boxes for ourselves altogether?

    Keep working

    Persistence is key when it comes to mastering creativity. In a world that’s louder and louder, it becomes harder to cut through the noise. Also, it takes time until you build up your own voice, your own style, and your own ideas.

    Ira Glass puts this better than anyone ever could: “All of us who do creative work, we get into it because we have good taste. But there is this gap. For the first couple of years, you make stuff, it’s just not that good. It’s trying to be good, it has potential, but it’s not. But your taste, the thing that got you into the game, is still killer. And your taste is why your work disappoints you. (…) Most people I know who do interesting, creative work went through years of this. We know our work doesn’t have this special thing that we want it to have. We all go through this. (…) you gotta know its normal and the most important thing you can do is do a lot of work. “ (source:https://www.goodreads.com/author/quotes/113989.Ira_Glass)

    Even if you’re no longer a beginner, if you’re a creative type, you never feel like you’re done. There’s always something to experiment with, something new to try. Truly creative people keep busy — this is a characteristic Mihaly Csikszentmihaly outlined in his book “ Creativity: Creativity: Flow and the Psychology of Discovery and Invention”(https://www.goodreads.com/author/quotes/113989.Ira_Glass)

    Be ruthless with your own ideas

    For creative people, our ideas are our babies. We love them because they reflect some part of us. Through our ideas, we share something of ourselves and how we see the world.

    But that’s where it gets tricky. When you’re too much into something, it’s hard to evaluate it. It’s hard to tell if an idea is good or bad if we’re too much in love with it, just because it’s your idea.

    Mastering creativity is also about deciding whether an idea is actually good.

    In order to do that, you need to learn to detach yourself from it. Take a step back and scrap everything on your mind about it. Try to see it through the eyes of someone who doesn’t have anything to do with it. Would you still say it’s a good idea? Would you say it’s a bad one? What arguments do you have for each of these scenarios?

    Make educated guesses

    Whether we admit it or not, we would like to be right. The first time, if possible.

    It goes way back to when we were in school. Here, questions usually have one right answer. Also, if we study hard enough, we know what that is.

    With creative work, there isn’t one single right answer. For any given problem, there can be multiple solutions that work equally well.

    No matter how many tools we push or how many skills we develop, we’ll never have that one, correct answer. At best, we are making guesses. It’s up to us to educate those guesses.

    How do you do that? One’s research. Do your homework, find out as much as you can about your problem or situation you’re working with. The second one is getting as familiar with the process and mastering the basics.

    For those with some experience, educated guesses sometimes come in the form of intuition or a small voice at the back of your head nudging you in one direction. Don’t ignore those. Learn to work with them — ask yourself why it’s suggesting one thing or the other.

    Learn to sell your ideas

    Creativity sometimes has this romantic allure that good ideas will prevail. If it’s a good one, it rises to the surface in the end, right?

    The reality is a bit different.

    Ideas that don’t spread die. It can be a good or a bad one, but it won’t survive for long when only one person believes in it. Additionally, bad ideas sometimes spread, leaving everyone wondering what’s happening.

    Mastering creativity is also about selling your ideas. It’s about making sure that they spread and turn into reality.

    Whether you work alone or in a team, you need to get buy-in from others to actually make things happen. You need to get people to support your ideas. Maybe sell is not the best word here, but to make sure your ideas catch on, you need to win others on your side.

    If you don’t get others to believe in what you do and how you see things, other people will. And we’re all familiar with bad ideas that gain momentum.
    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/
  • 开源日报第610期:《在线画图 drawio》

    15 11 月, 2019
    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《在线画图 drawio》
    今日推荐英文原文:《Time is Ripe for Github Disruption》

    今日推荐开源项目:《在线画图 drawio》传送门:GitHub链接
    推荐理由:现在使用浏览器页面代替桌面软件的趋势已经产生,很多需要即刻使用的软件都可以不通过安装而是直接通过浏览器使用了。这个项目是一个可以快速画出各种图的项目,包括工程用图和 UML 相关图等等,你可以选择将图片存储于云端或者是本地硬盘上,而不需要额外的安装步骤,相比于功能更详尽的安装软件,使用简单功能的浏览器页面有它独有的快速使用的益处。

    今日推荐英文原文:《Time is Ripe for Github Disruption》作者:Pen Magnet
    原文链接:https://medium.com/@tipsnguts/time-is-ripe-for-github-disruption-19d4526591e5
    推荐理由:一些对 GitHub 能做的更好的方向的见解

    Time is Ripe for Github Disruption

    In 2010, my friend advised me to create a Github account for my side projects. At that time, I had nothing going on commercially. I was employed in a Fortune 500 company. I had some online tutorials with code samples to showcase my skills.

    By 2009, Github was already boasting 100000+ users. But I ended up creating my Github very late in 2014 when I knew I couldn’t stay relevant as a senior developer in the market without it.

    I don’t know why, but I never saw much value in making my best creations available to the world just for the sake of a few employers.

    Today, Github is rich. Acquired by Microsoft for $7.5B, it has a success story every developer envies. And I am a satisfied user too, for it allows unlimited private repos with the blessings of its new master.

    But sometimes I am still puzzled what were the real reasons I avoided being a regular Github user for a long time. True, I did not have a huge collaboration with my freelance client teams. When I had, it was done using Bitbucket.

    Github sold private repos, yet it thrived on amazing revenue growth (300%+ during 2012).

    Where Github can be beaten?

    With the over-flooding of free cloud space, Github free unlimited private repos are a boon today for many.

    But if you consider what it did for the open-source movement vs what it could do now given its position, there is much to be desired.

    That’s where Github could be beaten.

    No Cookies for Indie Developers:

    Github provides you space to privately store your code. But after all, if you are an indie developer, it’s just some space. You get to upload your stuff with a handful of Git commands. You have no teams to collaborate with. Dropbox or Google Drive won’t be very different.

    What about users who want to show off their code to the world? Most popular repos on Github today have been popularized using popular twitter handles and high ranking blogs.

    Takeaway?

    You rule Github if you already have your influence outside Github.
    Useless interview question repos got 10k+ stars, while quality work remains undiscovered. Curated tech repos (example: Awesome iOS) collect quality repos under an umbrella, but masters control and govern them in monopolistic ways.

    Github has no curation standards of its own except Topics (discussed later in this article), and lets them have a free rein over these huge repos.

    No Payouts to Quality Contributors:

    I rarely received any recognition on Github for my own repos, though the work I contributed had saved 2 person-weeks each time it was to be done.

    I tried to get it under one of the curated repos to get more stars, but I got no response from repo owners.

    I felt disappointed.

    But when I read a piece about how fabulous Github contributors get nothing for their stars and forks, I was shaken:https://medium.com/@kitze/github-stars-wont-pay-your-rent-8b348e12baed

    Mine wasn’t the worst case after all.

    In the last decade, Microsoft has shown some great momentum towards open source. But what it will do with some extremely precious piece of software that runs the world remains unclear.

    In May 2019, Github announced to match up to $5000 support for projects that are already funded by external supporters. Something to imitate the Patreon business model.

    But what does it say about Github’s own evaluation of developers’ contributions? Do they recognize them simply because someone else decided that work is worth financial support?
    Where is Github’s own recognition of developers whose work has made them a billionaire megalith with code repos that almost runs the world?

    Poorly Curated Featured Section:

    Curation is any platform’s way of identifying quality contributors.

    Github has this place called topics.

    It has 5 tabs. Explore section shows you repos which may be of your interest based on your own programming language. Such a wide filter!

    Then there is trending, where already big players make it bigger.

    A curious section called Collection grabbed my attention. But seeing already successful repos there again disappointed me.

    Topics weren’t diverse enough too.

    If you really look at StackExchange community, you will get an idea what software topics really are. Above is a snapshot taken from their sites collection. It’s just 33% of the entire image. While it has non-software communities, software ones stand out in larger proportion.

    There is no place on Github to feature your newly published repo (quality notwithstanding) even for 5 seconds.

    Where is an average developer’s path to success on Github?

    With gigantic data science algorithms running behind every cloud endpoint, a smart code repo storage can surely do much better, given the place where they stand today.

    Conclusion

    An established platform’s problems are business opportunities for fresh and innovative startups.

    Github has been a great place, and will always be. But being a cloud wrapper around an open-source version-control system has bestowed upon it more than their fair share.

    It was a great milestone in the open-source movement, but it need not be an end.

    Time is ripe for a newer public version control provider to start and make a killing.
    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/
  • 开源日报第609期:《车还有多久啊 mini-tokyo-3d》

    14 11 月, 2019
    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《车还有多久啊 mini-tokyo-3d》
    今日推荐英文原文:《Estimating a Software Deadline Is Really Hard — Let’s Talk About Why》

    今日推荐开源项目:《车还有多久啊 mini-tokyo-3d》传送门:GitHub链接
    推荐理由:这个项目使用 3d 的方式展现了东京地图,准确地讲是东京的交通运输地图。从开放 API 中读取数据就能够让这些方块作为地铁火车什么的跑起来,观赏性还是相当高的,倒不如说看着地球上某个地方在运作什么就是一个有趣的事情——最大的原因大概就是因为人类总是因为这样那样的原因不能随便出去玩吧……

    今日推荐英文原文:《Estimating a Software Deadline Is Really Hard — Let’s Talk About Why》作者:Costas Andreou
    原文链接:https://medium.com/better-programming/estimating-a-software-deadline-is-really-hard-lets-talk-about-why-44687a6baf9d
    推荐理由:你需要一个计划,虽然它永远赶不上变化

    Estimating a Software Deadline Is Really Hard — Let’s Talk About Why

    The 5 laws you need to know for planning

    As you progress through your career, you might find yourself taking on more and more responsibilities until you find yourself in a managerial role. You will be responsible for the delivery and often quality of work that is outputted by the team.

    To ensure that the team remains fully occupied and that the team members are efficiently and effectively utilized, you will be required to plan for the future.
    “If you have to forecast, forecast often.” — Edgar Fiedler
    Planning for the future often sounds easier than it is. Every planning decision made, every forecast completed, is made on the back of a significant number of assumptions. If any of those assumptions are wrong, you can wave your plan goodbye.

    As you become experienced in the dark arts of estimating the work required for each task necessary to complete a project, you will identify areas of improvement and you will begin implementing your own laws.

    That is, you will come up with some rules that will help enable you to have more accurate estimates.

    In this blog, we are going to cover some widely accepted laws that are out there, which could potentially help us plan better.

    1. Hofstadter’s Law

    “It always takes longer than you expect, even when you take into account Hofstadter’s Law.”
    This law was coined in 1979, and it is as true today as it was back then. It is a widely accepted law in the software community, highlighting the difficulty involved in estimating how long work will take upfront.

    To battle this problem, there have been many techniques developed by different teams and organizations. A quick Google search will provide you with more ideas than you can ever use.

    My favorite technique is something called Planning Poker. Planning Poker is a team-based activity that takes estimates from the whole team.

    Each person in the team is given a deck of cards typically following the Fibonacci sequence and then are asked to estimate a task. Once each person has chosen their estimate, they put their card on the table, face down.

    When everybody has done that, each person turns their card around and announces their estimate. This is then followed by a team discussion, attempting to converge to the widely accepted estimate.

    The beauty of this method lays in its sub-components. Being a team-based activity ensures that the overall consensus wins, decreasing the chances of missed aspects to the work, and increases the team’s sense of ownership to the estimates.

    Using the Fibonacci sequence means that the distance between each available number increases as we move up the sequence. This helps cater for the additional complexity introduced by larger pieces of work.

    2. Murphy’s Law

    “Whatever can go wrong, will go wrong.”
    This is a famous adage that you may have come across before. It is applicable to every walk of life and certainly applicable to the estimation process of software development work.

    Murphy’s law fits nicely with Hofstadter’s law that we’ve seen previously. When coming up with estimates, people tend to be optimistic and may not cater for any big surprises.

    Even if we were to change our estimates to cater for this fact, Hofstadter’s law reminds us that we might still be under-estimating.

    To ensure a level of comfort in our estimates, I suggest that we always build in some level of contingency. Generally, a 10–20% contingency over the original estimate is not only recommended, a lot of the time it is expected.

    3. Parkinson’s Law

    “Work expands so as to fill the time available for its completion.”
    Parkinson’s law is actually something that can be observed on a personal level.

    Deadlines have a funny way of shaping how we approach problems and the work we do. When we have a long deadline, we may get distracted, (read: procrastinate), and we may approach problems in a different way.

    Strict deadlines tend to focus us, and allow us to cut through the unnecessary. It is true that quality might suffer to meet the deadline, but worth keeping in mind.

    How then do we use Parkinson’s law to our advantage?

    Following our earlier conclusion of building in a contingency into our estimates, we need to ensure we keep this extra time separate from the original estimates.

    If we were to distribute this extra time to each task, we would end up suffering from Parkinson’s law and burn through our contingency without any benefit.

    4. Sturgeon’s Law

    “Ninety percent of everything is crap.”
    Sturgeon’s law often helps simplify things when it comes to estimation.

    Whenever there is an unknown as to the quality of the existing solution or the availability of tools, one could simply refer back to Sturgeon’s law. It is a great starting point, because things very rarely can be or get worse than that!

    Armed with what we have seen so far, we can easily deal with the unexpected. To further make things easier for ourselves, we can ensure that the tasks we are estimating they are as small as possible.

    We don’t want to go too granular, otherwise, we will never finish this process, but we don’t want to be estimating too large of tasks either.

    5. Brooks Law

    “Adding manpower to a late software project makes it later.”
    This law was coined in the popular software engineering and project management book The Mythical Man-Month. It is one to keep in mind when dealing with estimates and planning on how to meet deadlines.

    This law has its basis in the economics law of diminishing returns, where at some point of adding a new resource to a task, the output starts to decrease rather than increase.

    This law, of course, is an oversimplification, as there are many cases where it does not hold true. For example, if the resource joining the project is already familiar with the codebase and the project, they could hit the ground running and have an instantaneous benefit.

    Additionally, if the deadline for the final deliverable is many months down the line, the extra resource might have time to turn things around. Usually, onboarding someone new into a project will take time off of existing resources to help answer questions and get them settled in at the beginning.

    Summary

    In this article, we have started with the premise that you will be responsible for estimating and planning ahead for the project. However, as you may have seen from the article, everyone in the team will have something to add to the process.

    Let us quickly summarize some of the key takeaways:
    • Involve the team as a whole when it comes to estimating upcoming work to increase the sense of collective ownership and better validate the estimates.
    • Always try to estimate smaller pieces of work (within reason), to have better estimates.
    • Always add some contingency to project work to cater for the unexpected.
    • Keep the contingency separately from the rest of the estimates and do not distribute it to each piece of work.
    • Be careful when adding extra resources to an already-late project as they can lead to the project being delayed further.

    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/
  • 开源日报第608期:《马赛克 PasswordStrengthVisualization》

    13 11 月, 2019
    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《马赛克 PasswordStrengthVisualization》
    今日推荐英文原文:《So You’re Self-Taught, Now What?》

    今日推荐开源项目:《马赛克 PasswordStrengthVisualization》传送门:GitHub链接
    推荐理由:众所周知,使用强度高的密码才相对比较安全。那么通过一些手段来引导用户使用强度更高的密码就可以一定程度上保护用户的信息——比如将密码强度与视觉反馈联系起来。这个项目通过计算密码的强度来对图像进行模糊化的处理,密码强度的变化会带来图像不同程度的模糊,从而引导用户使用强度更高的密码,算得上是一个崭新的想法了。

    今日推荐英文原文:《So You’re Self-Taught, Now What?》作者:Aphinya Dechalert
    原文链接:https://medium.com/better-programming/so-youre-self-taught-now-what-e426c5126d0f
    推荐理由:学到属于自己的技能之后要如何继续提高

    So You’re Self-Taught, Now What?

    9 things you should consider doing today

    Maybe you’re going through Boot Camp, or you’re participating in the 100 Days Of Code Challenge — where you learn a new concept or write a bit of code each day for 100 days. Whatever it is you’re doing, you’ve finally arrived at the point where you can call yourself a self-taught developer.

    But the question then becomes — now what?

    There will always be someone out there better than you, who knows more and can code more effectively than you.

    At what point can you upgrade yourself and begin to say that you’re a real developer? It’s hard — especially if you’re coming from the self-taught track. Those coming from a computer science degree track will always have an edge over you. This is because they have something you don’t: at least three years of intensive study of the inner workings of computer programs.

    It ranges from algorithms to thinking theories that may make them, by design, a better developer than you.

    But the mark of an effective and efficient developer isn’t based on a degree alone, nor can it be judged based on the number of years in the game. Every developer will experience different levels of work pressures that determine the speed and quality of their output. Code intuition is built through experience, namely past failures — because when things go well, we don’t really learn.

    It’s when we have to fix things that the real code lessons are taught.

    Here are nine things you should consider doing to expand your mind and experiences and upgrade your practical skills beyond coding tutorials.

    1. Make Something

    As a developer, you’re in the business of creating code — so the best way to practice your craft is to do the things that you’ll be repeatedly doing. However, there are different kinds of doing — the kind where you must follow along vs. the kind where you’re able to use the creativity of your own mind.

    The latter is the kind of creating you should task yourself with.

    This is because when you’re able to code something from scratch, with minimal help from the great knowledge pool known as Stack Overflow and the internet, you’re skilled enough to put pieces of knowledge together rather than spending half your time looking for answers.

    Once you’ve reached this level, it’ll let you focus on the product and its architecture rather than trying to find the bricks to build it with.

    2. Learn a New Framework or Library

    A developer’s world is always on the move, and so knowing how to code in a particular language is no longer enough. You also need to learn different frameworks and libraries, understanding enough to properly conform to their rules and requirements, syntax strangeness, and any oddities that will eventually make sense in the long run.

    Learning a new framework or library also signifies to potential developers that you’re able to pick up new ideas quickly — especially code organizational strategies — because that’s what frameworks and libraries essentially are.

    Frameworks and libraries exist to make life easier for developers by turning raw code into a structured methodology of creating applications based on certain sets of requirements. It also helps you keep everything in check and on the same page, especially once the application has grown to a certain size and has multiple people working on it.

    3. Dig Into Computer Science Topics

    If you’re self-taught, you’re most likely handicapped against those with computer science knowledge. The difference between you and graduates with degrees is that they know the underlying computational-based ideologies that aren’t taught in your usual tutorial or self-taught track.

    Most of the time, self-taught developers jump right into the code without knowing topics like recursion, functional and object-oriented programming, and algorithms.

    While we may have a working program, the robustness and potential conciseness of the code is lost due to a lack of this foundational ‘meta’ knowledge.

    4. Learn How to Think

    Regardless of what track you choose, learning how to think is a vital component in becoming a fully-fledged and highly effective developer. We’re not talking about your standard thinking — but rather, ways of looking at a particular problem and then coming up with a solution.

    There are different levels of thinking, from the code level to the architectural to the conceptual. Different paradigms, methodologies, frameworks, and libraries all have their own special way that enforces a certain way of thinking on a problem at a particular level.

    So expand your mind and educate yourself in as many of these things as possible. Try to get to a point where you can make compartmentalizations and connections between the different parts of a problem to a particular solution — resulting in creative code that’s highly robust and resilient to change.

    5. Go Shopping

    Ecommerce makes up the majority of major software development. If it’s not about analyzing the data gained, it’s about how to implement a particular shopping experience.

    There’s a reason why Shopify is so big — it’s because they’ve mastered the flow of end to end fulfillment. You can learn a lot from Shopify and translate their ideas onto your applications and solutions. The free account helps with mocking transactions and integrations.

    But Shopify isn’t the only shopping site available. Take a step back and look at Amazon’s flow. What strategies does the shopping giant have? What patterns can you see that are replicated in other places? What other techniques can you see?

    Consumers are more likely to buy when they encounter a similar pattern. This is because they already know how to make a purchase. Figure out what these patterns are and they can help you with future ecommerce related implementations.

    6. Invest in a Hobby

    Hobbies expand our domain’s edge by making us experts in a completely different field. This is necessary, especially when it comes to solutions that require thinking beyond the norm.

    In most university degrees, there’s often a component that enforces a requirement of general study in order to give students different perspectives beyond their core course requirements.

    The same can be done through hobbies, where you explore alternative methodologies of doing something. It can also give you an edge over other candidates when it comes to job applications if your hobby happens to match up with the industry that your potential company exists in.

    For example, someone who has a strong interest in health and wellness will often fare better in companies that deal with the healthcare sector. This is because the candidate is already predisposed to certain ideas and topics that someone jumping in cold may not have.

    7. Dive Outside Your Comfort Zone

    When it comes to application development, we often fall into the trappings of picking the easiest route in order to deliver on time. However, the result may not always be the best solution.

    As this habit of taking the easy path sets in, we need to give ourselves some friction in order to grow as developers.

    And to get this friction, we need to dive outside our comfort zone — meaning putting ourselves in knowledge spaces that we’re resistant towards. There may be a certain paradigm or methodology you’ve been putting off, or maybe you’ve put off learning a “competitor’s” framework or library.

    But seeing how other people are doing it may just give you the enlightenment you need to move forward.

    Code creation is part creativity and part knowledge industry. One can’t exist without the other to truly thrive.

    8. Aspire Toward Your Dream Job

    When was the last time you looked at an advert for your dream job?

    Employers often list the things they look for in a candidate, especially when it comes to different combinations of technologies.

    There’s a high chance that you won’t be able to tick all the boxes, but ticking more boxes than others gives you a better chance at actually getting where you want to be.

    The job calls for React but you’re an Angular developer? Then it’s time to go and play in the sandbox and verse yourself up with it. Does the job call for some weird acronym you’ve never heard off? Looks like it’s time to Google things up.

    When you look at potential jobs — not just at the current level you’re at, but at the seniority level you aspire to be — it gives you a blueprint of what you need to learn and level up.

    9. Master the art of testing

    Testing isn’t often a thing that’s on the self-taught radar. Learning how to test with frameworks and libraries will enable you to think differently and hone into the way you create your code.

    The way testing works is that it flips your normal, from beginning to end, and it takes the code development process and turns it on its side. You start off by knowing exactly what shape your data needs to be and test against inputs and expected outputs.

    This turns the process of creating code and essentially stabbing at the dark into a process of test-driven development — where the shape of things is architectured into the way you perform your code creation processes. It’ll also put you in front of other potential candidates when it comes to job applicants. Because chances are, they haven’t looked into testing at all.

    Final Words

    There’s no linear path toward upgrading your skills as a developer, but there are recipes and different combinations that essentially work on expanding your current knowledge domains and experiences with code.

    The thing with the self-taught path is that it’s slightly harder because there’s often a lack of guidance. But if you’ve made it this far in your journey, walking onwards is only a matter of consistently making the steps.

    It doesn’t matter what direction you go in. As long as you’re learning, you’re essentially making progress in some way.

    So keep learning and never stop learning, because that’s your ultimate leverage point in a field that’s all about what you know and how much you know.

    Thank you for reading.
    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/
←上一页
1 … 106 107 108 109 110 … 262
下一页→

Proudly powered by WordPress