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

开源日报

  • 开源日报第646期:《假装古人 wenyan-lang》

    21 12 月, 2019
    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《假装古人 wenyan-lang》
    今日推荐英文原文:《5 Rules of Code》

    今日推荐开源项目:《假装古人 wenyan-lang》传送门:GitHub链接
    推荐理由:要想让程序看起来很古人,那当然就是用文言文啊,不过这次要用更古老的办法——直接用文言文来编程。这个项目设计了文言文的编程语法,让你可以直接使用文言文完成在普通编程语言里能做的大部分事情(虽然有点麻烦),然后你就可以写个程序,再命个名,就能拿出去当一篇你写过的文言文了,虽然读起来可能有点奇怪和不通顺,但是意思可以说传达的很到位。

    今日推荐英文原文:《5 Rules of Code》作者:Peter Christian Fraedrich
    原文链接:https://medium.com/better-programming/5-rules-of-code-6970a55a444b
    推荐理由:作者对于编码过程中的经验总结

    5 Rules of Code

    Rules for maintaining your code and your sanity as a modern developer

    Over the past little while, I’ve compiled a list of “commandments”: things you must and must not do as a modern developer. Let’s walk through five of them and discuss why you should adopt them for yourself and your teams too.

    1. Monorepos: Just Don’t

    If you’re not familiar with the concept of a monorepo (I envy you) then let me explain: instead of having multiple source-code repositories for your applications, the monorepo concept places everything in a single repository.

    This can make contributing to multiple projects easier, but it comes at a cost: you must use subversion, you cannot use Git. Git, for all its strengths, does not support sparse checkouts like subversion.

    Sparse checkouts allow you to check out individual directories of a larger tree instead of the whole tree as Git does. This means you can have multiple people or teams work on individual parts of a tree without overlap.

    You cannot to this with Git and therefore should use individual repositories for discrete applications when using Git as your source control.

    2. Problem First, Then Solution.

    Everyone has their go-to things they like to use: Redis, MySQL, etc. And that’s OK, having preferences is healthy and normal.

    But we run into trouble when those preferences become requirements; a lens through which every problem is viewed that cannot be deviated from. And let’s not be deceived, this is more than just an individual vice, organizations are guilty of this too.

    Lots of companies mandate certain technologies, libraries, or tools, often with little thought or input from the “boots on the ground”, developers and operations engineers who have to actually use or implement these technologies.

    This is part of my long-standing gripe with enterprise architecture groups and their God-like powers over the mere mortals who actually write the code.

    Oftentimes, it’s the architecture group that decides that the company is going to use a certain technology or product — Kubernetes, OpenShift, AWS, etc. — without fully understanding the problems inside the organization and what these technologies were designed to solve.

    I saw this personally during my time at Capital One where our architecture group decided that we were going to be a Kubernetes company but didn’t have any real sense of what that meant to those of us who had to actually develop and implement the systems and tooling around it, or the applications that would run on it.

    And it was often architecture (or their malnourished stepbrothers, enterprise security) that were the cause of a lot of the roadblocks to them getting what they wanted.

    Had they — both architecture and security — understood the problems that needed to be solved first before deciding what tools to use second, then things might have gone very differently and most likely a whole lot smoother.

    3. Ask Questions

    It sounds so easy. So simple. So childish. Yet, so hard. Don’t understand something? Ask questions. Want to know why something is the way it is? Ask questions. Want to know where the project is headed? Ask questions.

    Just because you ask doesn’t mean you are going to get the answer you want, or any answer at all, but if you don’t ask questions then you’ll never find out.

    One of the best things to do after coming to a new team or starting a new job is to ask all the questions. Pulling the FNG card is like having a “get out of looking stupid” card for the first little while.

    Asking questions that start with: “Hey, I’m new to all of this, so let me ask what might be a dumb question…” is an awesome way to find out things you want to know but also challenge the status quo.

    You’d be surprised to find out how many organizations are doing things a certain way “because reasons”. Usually, it’s because someone set it up that way a while ago and no one bothered to go back and fix it.

    By asking questions, challenging assumptions, and digging for information, we make our teams, our groups, ourselves, and our lives better. I’ve been able to cut out entire layers from infrastructures from asking questions like this.

    Who knows what you’ll be able to trim out.

    4. Square Pegs Don’t Go in Round Holes

    Like a lot of good things — making love, team chemistry, precision-threaded machine screws — when it’s good it feels effortless. Our lives are filled with feedback, explicit or not.

    The way your keyboard feels under your fingers as you type, the little vibration “click” your phone does when you press a flat imaginary button, the way my lactose-intolerant stomach revolts every time I decide that having ice cream is 100% worth it; these are all forms of feedback.

    They let us know when something is going well, normal, or going very, very badly, and it’s the same for literally everything. We’ve all been there before, working on a project, that nagging feeling in the pit of our stomach that keeps telling us that we should change databases to better support our data model.

    That, instead of writing a lot of fragile data transformation code, you could do a lot of this in-database if you just used a relational database and an ORM. Or, after finding yourself on a new team or in a new job and you just don’t get along with your peers for some reason.

    It’s not that you don’t like them or they don’t like you, some personalities just work better together than others. Don’t force it. Find the better solution and go with that.

    Talk to your manager about changing teams. Find an ORM and get to work. Stop what you’re doing and do the thing that’s going to make it effortless. Leave the square-peg/round-hole problems to the NASA nerds.

    5. Use the Best Tool for the Job (Unless Its Java)

    I’m probably going to get a lot of hate for saying this, but I don’t see a reason to be using Java in today’s industry.

    Java does have some differentiators against its competition, I won’t deny that, but those differentiators don’t really apply to today’s engineering environments. Here are some pros for using Java:
    • It can run anywhere.
    • Automatic memory management (with its garbage collector).
    • Extensive community and frameworks/libraries/plugins for the JVM stack.
    Let’s talk reality for a minute: how many software shops that use Java do you see writing a single codebase with the intent of running it on multiple architectures, operating systems, etc.? Not the majority, at least.

    And today, Java isn’t nearly as unique in the memory management space, either. Both Go and Rust have some sort of garbage collection, Python uses reference counting, and many other languages do as well.

    And Java is by far not the only language with large active communities around it. Rust and Python have incredibly active and helpful communities, with Go’s community ramping every day.

    But the other trade-offs you make with Java, at least in my opinion, aren’t worth it. Because Java relies on the JVM, there is an automatic size cost incurred with every Java application.

    This might not be much of a consideration when talking about servers that have gigabytes of free space — a couple of hundred MB’s aren’t much — but in a highly containerized world a few hundred MB is astronomical. (Note that Python suffers from this downside as well.)

    With compiled, statically-linked languages like Go and Rust (and others), you can have very small, very lean containers that often have a single binary in them, with sizes as small as 4 MB.

    This is important especially for large organizations where network throughput is a premium, downloading a new container that’s 400 MB or 5 MB is an easy choice to make.

    Also, because of the JVM and that Java is JIT-compiled, there is a performance cost to running Java code.

    For low-latency, high-throughput applications, or scenarios where bin packing a server is extremely important, losing performance to the overhead of translating bytecode to system calls just isn’t worth it.

    All of this is why it’s important to use the right tool for the job at hand.

    You don’t want to use BASIC for landing someone on the moon, and you don’t want to use Java for high-performance computing — find the solution that matches the problem you’re trying to solve.
    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/
  • 开源日报第645期:《markdown 编辑器:marktext》

    20 12 月, 2019
    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《markdown 编辑器:marktext》
    今日推荐英文原文:《News Brief: November updates from the Google News Initiative》

    今日推荐开源项目:《 markdown编辑器:marktext 》传送门:GitHub链接
    推荐理由:越来越多的人开始使用MarkdownMark进行创作,一个好的编辑器必不可少。Mark Text使用虚拟DOM来呈现页面,该页面具有高效和开源的附加优势,实时预览和干净简洁的界面,使您获得无干扰的写作体验,拥有丰富的Markdown扩展,例如数学表达式(LaTeX),封面和表情符号。各种编辑模式:源代码模式,打字机模式,焦点模式,更好的满足您的需求。
    今日推荐英文原文:《News Brief: November updates from the Google News Initiative》作者:Kai Ridenoure
    原文链接:https://www.blog.google/outreach-initiatives/google-news-initiative/news-brief-november-updates-google-news-initiative/
    推荐理由:谷歌公司是全球著名的互联网公司,业务范围涵盖互联网广告、互联网搜索、云计算等领域,开发并提供大量基于互联网的产品与服务。让我们看看谷歌最近的动态有哪些。

    News Brief: November updates from the Google News Initiative

    November is when we ask ourselves, “Where did the year go?” This month, all of us working on the Google News Initiative continued to lay the foundation for some cool work in 2020. We can’t wait to see these programs grow.

    Local news continues to be a priority.

    In September, we announced a three-year partnership with U.K. publisher Archant to develop sustainable business models for local news. We recently selected Peterborough as the first site for this project, and Peterborough Matters will launch in the spring to provide online-only, community-driven local news. We also partnered with AtlanticLive to host “Informed: The New Era of Local News” in Minneapolis, Minnesota, covering a range of topics important to the future of local.

    We’re working to crack the code on subscription growth.

    Along with our partners Lee Enterprises, we’re working to develop a new machine learning-based paywall technology. We’re applying artificial intelligence to understand how readers engage with content and ultimately make the decision to subscribe. We’ll begin developing this technology in December, and intend to share learnings with the broader media industry.

    Supporting reporters with tools to cover elections is crucial.

    We’re focused on connecting voters to information about candidates and issues, and recently partnered with the Boston Globe to develop a new elections explorer tool. Although videos enrich storytelling, producing video isn’t accessible for many publishers. Along with our partners at Stringr, we’ll support local news with cost-effective video content for the 2020 U.S. elections. Through this partnership, we’ll be supplying local and national news outlets with several kinds of political video news packages on a regular basis.

    Developing new technologies to support storytelling.

    With new creation tools now in Google Earth, you can turn our digital globe into your own storytelling canvas, and create a map or story about the places that matter to you. We released new courses on our Training Center to help journalists tell engaging stories around the world.


    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/
  • 开源日报第644期:《12306 购票小助手》

    19 12 月, 2019
    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《12306 购票小助手》
    今日推荐英文原文:《The Release Ratio: How to Make Use of Everything You Know》

    今日推荐开源项目:《12306 购票小助手》传送门:GitHub链接
    推荐理由:顾名思义,很简单,能在春运来临之时助你一臂之力。不用多想,它只是用技术手段省去了你用手指操作的繁琐的过程而已(不过是在此之前增加了一些繁琐的配置过程罢了,不过嘛,这应该是值得的)。人生苦短,我用Python。
    今日推荐英文原文:《The Release Ratio: How to Make Use of Everything You Know》作者:More To That
    原文链接:https://humanparts.medium.com/the-release-ratio-how-to-make-use-of-everything-you-know-7ef9f3e9c691
    推荐理由:当获取知识成为最终目的时,知识就失去了它的意义。还是那个问题:知识的输入与输出。

    The Release Ratio: How to Make Use of Everything You Know

    One simple metric converts knowledge into something special

    Meet Mr. Podcast.

    Mr. Podcast is great. He delivers information instantly, and you can do many other things while listening to him.

    Here’s Mrs. Video.

    She’s an amazing educational resource, and has the ability to condense difficult concepts into digestible pieces. She makes learning fun, and makes you feel like a kid again when you hang out.

    Finally, meet Mr. Book.

    He’s the sage of the group, and has been around for quite some time. So when you’re with him, he’d like a little respect.

    You love Mr. Podcast, Mrs. Video, and Mr. Book.

    They’re always telling you about cool shit, and you love how they motivate you to live your best life.

    Every day they give you brain fuel. With every word you hear, every visual you watch, and every sentence you read, your mind container fills up as you learn more about the world.

    This feels great, but at some point, your mind starts getting a little… full.

    You feel it loading up, but you tell yourself that you must keep going. You can never have enough knowledge, and it’s so easy to acquire anyway.

    This brain fuel keeps pouring in…

    Until one day, you feel fucking nauseous.

    The mind is just like the stomach. Give it too much stuff without the proper release, and you’ll get sick.

    When you consume content, it’s good up to a certain point. It’s great to learn more about the world, but then you must follow that up with: “Okay, so what do I do with all this information?”

    If you never act on that question, then content consumption turns into an unhealthy feedback loop. You start tricking yourself into believing that knowledge acquisition is the end goal. This is when Mr. Podcast, Mrs. Video, and Mr. Book are no longer useful, regardless of how rich in quality they are.

    They quickly become empty calories: pseudo-foods that make you feel like you’ve accomplished something simply by consuming them.

    To convert this fuel into something productive, there’s really only one thing we can do.

    Introducing the Release Ratio


    Last month, I had a great conversation with a close friend of mine. He told me that he’d been reading a lot of great stuff lately, but felt a sneaking sense of discomfort afterward. He was soaking up so much knowledge, but felt like he wasn’t making the proper use of it.

    He framed his conundrum with this question: “How can I increase the ratio of content I create over the content I consume?”

    This ratio he spoke of was an elegant way of framing the problem at hand, while also delivering a solution.

    To make content consumption meaningful, you must create or build something with it. It can be something concrete like a product or a service. It can even be something more process-driven like a habit or culture.

    Regardless of what you build, it is this very act of creation that releases the brain fuel inside your head. All the knowledge you have is a store of wisdom, but you will never unlock that wisdom if you never act upon what you know.

    The ratio my friend spoke of — which I will call the “Release Ratio” — is a good way of managing the level of brain fuel you have.

    Every mind container comes with a built-in release valve. When opened, it will expel some of the contents of the mind out into the world.

    The rate of release is determined by our ratio. The higher it is, the more fuel is processed and poured out. The lower it is, the less fuel is utilized, and the more knowledge remains in your head.

    Unsurprisingly, the default setting of the valve has its Release Ratio set to zero. It’s much easier to consume countless of hours of podcasts, videos, and books than to spend time creating anything with what you’ve learned. We tend to allow inaction unless we have to choose otherwise.

    But as we described earlier, a tightly shut valve leads to a restless mind. Having all this information without the proper release is discomforting.

    So the first step is simple: keep the Release Ratio above zero, no matter how small that number is.

    Release a tiny bit of brain fuel by starting small


    When starting out, just keep this image in mind:

    It doesn’t matter if the Release Ratio is 0.1 or 0.001. Start small. Make something that just takes five to 10 minutes of your day — possibly even less. All that matters is that the valve is cracked open.

    One way to do this is by starting a daily journal. Writing down your thoughts and learnings is, in fact, an act of creation. The combination of words you put down are imbued with a unique fingerprint that no one else can replicate.

    Even if you listen to three hours of podcasts each day, journaling for 10 minutes allows you to synthesize some of that information and reframe it with your own perspective. Through this simple act of writing, you have created something new, and that’s all that matters.

    “Creating something” can sound daunting, but really, anyone can do it.

    Record a short voice note after you read something. Jot down some business ideas you’ve had recently. Draw a quick sketch of a character you made up, or of one that already exists. These small acts of creation make use of your brain fuel by opening the valve, giving the container a little more room to breathe.

    Like most things worthwhile, the hardest part is the start. But remember, all you need to do is to keep the Release Ratio above zero. That’s the golden rule. Once you’re able to do that consistently, then you’re ready for the next step.

    Commit to projects for a higher release ratio


    If you really want to make good use of your brain fuel, it’s time to up the commitment. Setting aside 10 minutes of your day was a good way to warm up, but real exercise comes with longer-term, dedicated projects.

    This is when short voice notes become structured, hour-long podcasts. It’s when quick journal entries evolve into long-form blog posts. It’s when your business plan actually becomes a business.

    This is when you really start making use of all the knowledge you have. Your brain fuel is now allocated to a dedicated project, and is used up frequently in regular intervals.

    In other words, your knowledge now has purpose.

    This is an awesome thing, and I can validate this through personal experience.

    Before I started More To That, all the content I consumed would just sit in my mind. The only release I’d have is if I regurgitated some quote I heard to my wife or friends, or if I slightly adjusted my behavior based on something a prominent scientist said.

    But now that I have this blog, all the ideas I come across are just oozing with creative potential.

    All the cool shit I read, watch, discuss, or listen to can become the foundation for a new post. Anything I find interesting is fair game, and I can combine all these ideas together to create something compelling for the blog.

    Having a dedicated project allows you to see the world through that project’s lens. It increases your awareness of informational inputs, as they now have a purpose to fulfill. This leads to higher creative output, which ups the rate of release set by the Release Ratio as well.

    At this stage, you’re spending hours each day creating things, not minutes. Your mind container is being emptied out at a rate that allows for more brain fuel to come in, and this all feels healthy and productive.

    However, with a Release Ratio of less than 1.0, that means that you will always be consuming more content than creating. For example, a ratio of 0.5 means that you will be creating one hours’ worth of stuff for every two hours’ worth of material being poured into your mind.

    But what if the numerator is increased significantly? What if you’re creating things for 5 hours a day? Does that mean you have to consume 10 hours’ worth of brain fuel?

    Of course not. This likely means that you won’t have much time to read books, watch videos, or listen to podcasts. If you’re creating things for 5 hours each day, maybe you’ll only have an hour at the end of the night to read.

    This is a scenario in which the Release Ratio is greater than 1.0, or when you create more than you consume. This is common amongst full-time content creators: writers, artists, designers, entrepreneurs, etc. In fact, it’s probably the default setting for this group of folks.

    Whether it’s driven by fleeting inspiration or habitual routine, a creator can work on something for many hours each day at sustained intervals. This certainly feels productive, but remember that creation and consumption are inextricably linked. Our ability to create things is contingent upon the inputs that we receive from the world.

    A writer writes because he reads. A filmmaker creates because she watches. An entrepreneur builds because she observes.

    Focused creation is good… up to a point. If you keep creating stuff without taking time to refill the mind, this inevitably leads to one thing:

    Burnout.

    When the mind container is empty, there is nothing to draw upon. You can try to create stuff without brain fuel, but the quality of what you make will suffer.

    This is why companies pause and take retreats. It’s why artists go into the wilderness to recalibrate. It’s why Bill Gates secludes himself in a remote cabin for a week to read and think.

    You can have periods of time where your Release Ratio is greater than 1.0 — sometimes even pushing into the 10.0’s — but one day, you will run out of fuel. You can either keep pushing hard and burn yourself out, or take a few days to populate your mind with good reads and interesting conversations.

    Life is a long-term game, so I advise that you choose the latter.

    Like all things worthwhile, there’s an intricate balance to consider. Being a knowledge sponge is fun, but you need the proper release to make it meaningful. Release too much without refilling, however, and you’ll be a wiry ball of fatigue.v
    Despite the ebbs and flows, there’s one rule that stands: keep your Release Ratio above zero. Start small if you have to. The aim is to crack the valve open just a bit so your mind has some room to breathe.

    We love living in a world where Mr. Podcast, Mrs. Video, and Mr. Book are our friends, but that friendship is usually a one-way street. We soak up all the knowledge they hold, but don’t give anything back in return.

    The best way to close this loop is to create something yourself.

    Take the brain fuel you’ve been given and make something with it. What you make, in turn, will become fuel for the next person. After all, this is the nature of creativity: The creations of one become the inspiration for another, and the cycle continues.

    If you enjoyed this post, consider joining the More To That email list.

    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/
  • 开源日报第643期:《简单为美 Katana》

    18 12 月, 2019
    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《简单为美 Katana》
    今日推荐英文原文:《Everyday Activities to Help You Become a Better Developer》

    今日推荐开源项目:《简单为美 Katana》传送门:GitHub链接
    推荐理由:要想为浏览器页面布局的话起一个 Flex 或者 Grid,再或者把 BootStrap 搬出来都是可以的,但是如果要想做到像 BootStrap 那样布局又不需要额外使用它的组件,这个项目兴许就能做到。这个项目使用 Flex 做出了简单的布局方法——与 BootStrap 类似,使用列的方式规定元素长度,再加上一点整体布置,就完成了一个简单的布局框架,当你不需要杀鸡用牛刀而只想使用布局的时候,这个项目的布局能很好的代替 BootStrap,语法上的相似让你能轻易切换到这边来。

    今日推荐英文原文:《Everyday Activities to Help You Become a Better Developer》作者:Thomas Guibert
    原文链接:https://medium.com/better-programming/everyday-activities-to-become-a-better-developer-3d00ec8d14a5
    推荐理由:坚持每天学习以进步,不管是什么方面

    Everyday Activities to Help You Become a Better Developer

    Getting better every day is the goal of many developers

    Doing tutorials and reading documentation should be part of your daily routine. But do you feel like it’s not enough though and you need some more ideas?

    Below, you will find a list of side activities I’m doing. I hope it will make you want to give them a try!

    Side activities you can start today!

    I would like to start by pointing out that it’s nice to work on multiple activities in parallel.

    Doing the same activity for too long can get boring, which becomes counter-productive, in my opinion.

    Rotating between multiple activities or projects gives you the choice of doing something else when you get bored.

    1. Algorithm Coding Challenges

    Doing an algorithm coding challenge is playful. No matter what your level is, there are challenges to match your skills.

    My recommendation is to do one with your coworkers.

    I did it with my colleagues in my previous company. On the morning, we choose a challenge and gave ourselves 15 minutes to solve it.

    After 15 minutes, we compared our codes to see which was optimal. It created debate and was always interesting.

    You can alternate between easy challenges and more complex ones. The objective of easy challenges could be to come up with the optimal solution. For hard ones, it would be to at least try to solve the problem.

    Here are two famous websites you can use: FreeCodeCamp and HackerRank.

    I like them both! They propose in-page editors and there are challenges for any levels. Moreover, both of them come up with solutions for each challenge. There are usually multiples solutions, from the less optimal to the most.

    Analysing the different options, and understanding why one is optimal, really teaches you a lot.

    2. Participate in Open Source Projects

    I’m sure there’s an Open Source package that you love. How about giving its community a hand, helping them to fix open issues or develop new features?

    There are a lot of benefits to this. Two of them are that you will get a better in-depth understanding of the project itself.

    More than that, you will get to work with developers you don’t know, interact with them and that’s a great valuable experience in collaboration.

    If contributing to an Open Source project looks scary, don’t worry — there are solutions:
    • First Contributions’ project aims at providing guidance to beginners who want to make their first contribution.
    • GitHub Help Wanted is an app that allows you to filter by language and issues label to find a project you can help.

    Good first Issues opened on styled-components package repository

    Commonly, easy issues will be labeled with names like: Good first issue, Easy, Good for beginner, Up for Grabs, etc.

    3. Create a Package

    This is another way of doing Open Source.

    Let’s say you had to build an awesome bulletproof component for your React application because you couldn’t find one to do the job correctly on NPM. It could be nice to create a package from it so it can be used by other developers.

    I created my first package not so long ago — a feature we needed for our product at work.

    While I tried my best at work to make sure there were no bugs in this feature, transforming it to a NPM Package made me want it to be even more bugless!

    That code will be used in other projects and if it works in my project it will work for any of them. So, I spent lots more time on it, to perfectly document it (who knows, a developer might find it and want to help!) and to perfectly understand each line of it.

    It’s satisfying to see the amount of downloads of my package going up (only a few hundred so far but still!).

    4. Start Your Own Product

    This is the perfect side project for entrepreneurial folks. By being developers, we can build almost what we want. Personally, I would like to one day launch a successful product.

    This is the most comprehensive project you can have.

    If you manage to create a successful product the first time then lucky you, but it will probably take multiple attempts!

    No worries, falling is okay. Working on a product will teach you so many things — programming knowledge, of course, but also:
    • How to write specifications (being alone doesn’t justify not writing any).
    • How to market your product, monetise it.
    • Define how you want your users to experience your product.
    • How to solve problems while developing it.
    • How to be rigorous and attentive to small details.
    That’s priceless expertise you can benefit from, without really taking any risk at the beginning.

    I love working on products in my spare time. They have all failed up till now but that’s not a problem. I’m not perfect — I’m learning — and that’s the whole point!

    Every time I’m working on a product, I’m so excited that I could work on it 24h a day. In my case, this can be counter-productive because I don’t take the required time to step back, but everyone is different. It teaches you to discipline yourself and discover how you want to work.

    I feel great satisfaction when I can start an app from scratch. Honestly, I’ve never applied the same file structure to the projects I have started because I improve it every time.

    Finally, the Community of Makers is huge. Here are some links to get started:
    • Product Hunt: The place to find all newly released products, perfect for inspiration, perfect to see how product developers are building their ideas.
    • Levels.io: If there is one person to follow in this community, he’s your guy. He’s built many successful products over the past years. That’s a real maker. You read his piece called Turning side projects into profitable startups — it’s very inspiring.
    • Some other interesting links… wip.chat, Makerlog.com, Indiehackers.com,

    5. Write for Publications to Share Your Knowledge

    This is the most time consuming for me. You don’t realise how hard it is to share your knowledge until you have to do it. It takes a lot of time to write something in an interesting way and to check it 100 times to be sure you are not sharing incorrect information. I want to be convinced it will please readers and that they’ll learn something.

    I think it’s happened to many of us — getting stuck in a tutorial because there is one missing step or a bug that’s not covered. You came to learn one thing and now you have to try to fix something that shouldn’t be there in the first place. How frustrating.

    I spend a lot of time making sure it will go smoothly for readers. In doing so, I almost always find there is one step that’s not clear enough.

    For example, there might be ten lines in my project copy-pasted from StackOverflow and I’m not 100% assured of what it does (there’s no shame in that). Before I publish my project, I’ll understand it. If necessary, I’ll spend an hour or more on a line of code — until I’m confident I could explain it if someone was asking.

    That’s a lot of work but I’m really happy when I publish something. I get even more happy and excited when someone claps something I wrote! The feeling you get when your piece has been useful to someone is better than a cup of coffee.

    To get started, my advice would be to take your time. Publishing something unfinished won’t interest anyone — you won’t be proud of yourself. It would be sad to feel demotivated after your first publication, when you were so excited to publish it in the first place. Take your time, make sure you cover the topic in the title and make your piece interesting by giving sources, examples, and your own opinion.

    6. Stream Yourself Doing One of the Previous Activities

    Being able to explain what we’re doing while coding is a great skill.

    As developers, we’ve all been through technical interviews where we were asked to solve a problem on a whiteboard or an exercise of some kind.

    Being smart is cool but it’s even better if you know how to talk about what you’re doing! The ability to clearly describe how you are solving a problem can put your resume at the top of the pile. While it might be easy for some people, others have to train that skill.

    Streaming yourself on a platform like Twitch allows you to practice your oral skills. The exercise is to be able to talk about what you are doing. What problem you are solving while coding.

    As a streamer, you want to be interesting for your viewers.

    I like to stream myself when I work on a product. For two reasons:
    • I can get feedback on the product I am building and get my potential first users. They can also share ideas for features I didn’t think about.
    • I don’t want to be scrolling Twitter while streaming, which means I’m super productive. Before turning on the stream, I write down what I want to achieve during that time and I usually get it done 50% faster.
    Do not look at the number of viewers while streaming — no one cares. There might be no one, there might be 235 viewers, it’s not important. Tell yourself there are 10,000 people watching you and you have to make what you are doing interesting for them.

    If you don’t feel like streaming yourself yet, watch other streamers first. On Twitch streaming platform, there are two: Basic Programming and Science & Technology. There are more streamers on Science & Technology.
    These are the activities I do on a regular basis. I hope you will try some of them. The most important thing is to do something you like!
    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/
←上一页
1 … 97 98 99 100 101 … 262
下一页→

Proudly powered by WordPress