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

开源日报

  • 开源日报第782期:《Flexbox传教 solved-by-flexbox》

    24 5 月, 2020
    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《Flexbox传教 solved-by-flexbox》
    今日推荐英文原文:《Stuck in the Tutorial Loop as a Developer?》

    今日推荐开源项目:《Flexbox传教 solved-by-flexbox》传送门:GitHub链接
    推荐理由:Flexbox,弹性盒布局,它的出现的确帮助我们解决了很多难以解决的问题,不再需要繁琐的 CSS 样式,仅需要一些 Flexbox 布局调整就能实现想要的效果,这个项目总结了一些 Flexbox 能大显身手的场合,如果没有 Flexbox 这将变得难以想象。
    今日推荐英文原文:《Stuck in the Tutorial Loop as a Developer?》作者:Angad Singh
    原文链接:https://medium.com/better-programming/stuck-in-the-tutorial-loop-as-a-developer-2d1a3f76c941
    推荐理由:实际在项目中学习肯定比教程里会遇上更多挫折的,但是这是必经之路

    Stuck in the Tutorial Loop as a Developer?

    With the ubiquity of Udemy courses, YouTube tutorials, and Medium articles, the access to knowledge for a developer is amazing! This is what has enabled several self-taught developers to become full-time employees in the software industry or launch their own start-ups. However, the way a self-taught developer gains enough skills to earn a job or build their own project remains tedious. I taught myself programming and helped my brother and several friends on their journey, and I noticed that we all faced the same issue.

    Impostor Syndrome

    The lack of a formal structure from a college program has certain benefits but also some drawbacks. Many self-taught developers may think that they are not worthy compared to their colleagues with bachelor’s or master’s degrees in computer science. It sounds ridiculous just writing this. However, I noticed this with myself early on and have a suspicion that this is the case for a few of my fellow risk-taking, self-taught peers. I go into more detail about getting over the impostor syndrome in this article(https://blog.usejournal.com/getting-over-the-impostor-syndrome-ff9afa0f4afc).

    Essentially, as a self-taught developer, you will always feel that your colleagues who spent four years getting that degree know something you don’t. With the huge diversity of things you can learn from Udemy, YouTube, Medium, and several other websites, I promise you there will always be something you see there that you don’t know — no matter how experienced you are.

    You will simply have to accept the fact that you can’t learn everything. Forcing yourself to go through every single tutorial you come across is like trying to catch every snowflake when it’s snowing outside.

    I get the appeal. You are trying to “outdo” your university-taught colleagues by learning things they don’t know. But instead, what you’re doing by going through more language tutorials is learning the same operators, different syntactical sugars, and implementations of data structures like hash tables, arrays, linked lists, etc. in different languages. That’s all. If you are not stuck in the tutorial loop of programming languages, then maybe you are stuck in the loop for frameworks. Do you really need to learn how to create a REST API in Django, Ruby on Rails, Koa, and Spring if you know how to do it in Express.js? Or learn Vue, Angular, and Svelte if you know how to create a full-fledged website in React? True, there are special cases for several other frameworks, but you should only look to branch out into other frameworks once you have mastered one. This will also make you acknowledge the quirks of the framework/language and appreciate it more.

    The points I mentioned above even go for developers who have graduated with computer science degrees. With the wide array of tutorials available and the pace at which newer technologies are released, it is quite easy to feel overwhelmed and think that you don’t know as many technologies as you should. This is mostly never the case.

    Instead, the issue with a lot of developers is that they don’t know their few core technologies deeply enough.

    Stuck in a Comfortable Cage

    Ever heard of Stockholm Syndrome? This is when a kidnapped hostage becomes attached to their captor. Or have you ever had a friend or a relationship where the person wasn’t good for you and you knew it, but you still stuck with them because it was comfortable and you didn’t want to leave them and start looking for someone else because of a fear of uncertainty?

    That’s colloquially known as being in the “comfort zone.” It’s basically what you’re going through with software tutorials. It’s quite comfortable to learn for loops, arithmetic operators, hash tables, arrays, stdin, and stdout in a new language — basically concepts that you already know. Finishing such tutorials and re-learning the concepts you already know in a new language, a new framework, or the same framework/language but in a new way can make you feel productive even though deep down inside, you know that you are not truly growing. And the best way to grow is to try to create your own project.

    Fear of Failure

    But what if I try to create something and fail?

    Let’s be realistic: If you are a beginner, you can’t expect yourself to create the next League of Legends, YouTube, or Shazam.

    Hell, no one person can. Such projects need huge scalability, amazing infrastructure to handle the traffic as well as serve up a huge amount of static data.

    So I will fail? What is failure if you start small? Can you fail at creating a single-page website? Only if you are really determined to fail. Start small. Try to create something just outside of your “comfort zone.” Or if you’re super ambitious, go big and you can re-draw the finish line closer to you if you feel like the project is too much to handle.

    Boring to Recreate Something

    One reason to not break out of the tutorial loop and start creating something is because it is boring to remake a to-do list app, create an Instagram clone, or a weather app. These are all common, unimaginative avenues every programmer has seen in tutorials. The issue for a beginner developer is that your skills are limiting your ability to create something original — or at least that is what you believe.

    How to Break Out of This Loop

    There’s one thing that is unique. You. Create your own website where you write about yourself and you will later have a portfolio when you have a lot of projects under your belt. Make the website as unique as you and, oh yeah, ditch WordPress! Here are some other options once you have your website in place:
    • Add CI/CD to your website so every time you push code to your website’s repository, it is bundled and deployed to your server.
    • Write tests for this website.
    • Create a REST API serving dummy data and deploy it free of cost on Heroku.
    Once you get the hang of it, now you can actually brainstorm a bigger, full-fledged project and develop it. Or you can choose to contribute to an open-source project if you are not the creative type and don’t want to come up with an idea.

    Frustrating?

    As you go deeper into your project or the open-source project, you will face bugs. It is an inevitable path you must cross on the road to becoming a software developer.

    Through millions of Google searches, Stack Overflow posts, boring documentation pages, and trying different solutions, you will realize that in the process of solving these tedious bugs, you learned a bunch of new things and figured out how to solve the issues and complete the feature — if not the whole project. That is amazing! You can now proudly call yourself a software engineer/developer/programmer/ninja.
    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/
  • 开源日报第781期:《光标动画 AnimatedCustomCursor》

    23 5 月, 2020
    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《光标动画 AnimatedCustomCursor》
    今日推荐英文原文:《Getting over the impostor syndrome》

    今日推荐开源项目:《光标动画 AnimatedCustomCursor》传送门:GitHub链接
    推荐理由:这个项目对鼠标指针下手,为鼠标指针加入了动画效果,用户在电脑上使用网页时注意力很容易集中于鼠标指针附近,如果要改变页面风格的话这会是个很好的切入点。

    今日推荐英文原文:《Getting over the impostor syndrome》作者:Angad Singh
    原文链接:https://blog.usejournal.com/getting-over-the-impostor-syndrome-ff9afa0f4afc
    推荐理由:一定的不安感会让你保持进取心,但是别让它击垮你

    Getting over the impostor syndrome

    You study for long hours when all your friends are out, and you don’t just put in the time, you study in depth. You make sure no stone is left unturned. You research the company that you are applying for and practice all possible scenarios. On the day of the interview, you wake up early, clear your head and get there on time. You nail the interview and wait for their answer. You finally get it — it’s a yes. You put in the hours and negotiated well, so you also are getting the salary that you asked for. You rush to say yes to the HR representative. It’s the job you were waiting for. In a lot of ways, it’s your dream job and you are surprised you were able to get it so early in your career. You can’t believe your luck, it’s almost too good to be true. You should be over the moon but instead you ponder, “Do I deserve it?”.

    Stop yourself right there. Not only will that thinking stop you from enjoying champagne, it will also block you from truly actualizing your dreams in life.

    Why am I feeling this way?

    No two people are the same. And no two people process their emotions the same way. The reason why you’re feeling this way might not be why another person is also having this similar feeling of being an impostor. The impostor syndrome however has become a common condition, so much so that there are hundreds of hours of YouTube videos about it. I am no psychologist but especially, while working in tech (where the impostor syndrome is quite common) and mentoring other people who are studying computer science, I have noticed that there are certain patterns of thinking that are quite common. You may benefit by reading the following reasons, as you may have also followed a similar thinking pattern, or a combination of a few.

    One reason for having an impostor syndrome is just a lack of experience. You are good at what you do, all your colleagues are just a bit older than you and thus are more experienced. They know about all the bureaucracies and have the tacit knowledge that only comes after decades in that industry. When they talk they have certainty behind their words. When you talk, you have ideas, which one of them is the best; you don’t know yet because you have not experienced all the scenarios your older grey-haired colleagues have yet. Does this make them better? No, absolutely not; and you shouldn’t be harsh on yourself for literally working harder and reaching that role/position quicker.

    Another reason for an impostor syndrome is a low sense of self worth in general. If you tend to be too self-critical, you can be quick to give others credit for their achievements but simply attribute your achievements to luck. Did you not work hard to get where you are? Did you not pass all the tests? Academic, and otherwise. Someone clearly thinks you are the right person for the job but you think you’re not worth it. And trust me, when a company hires someone, they try to be as critical as they can be. So why do you put yourself down all the time and have a low sense of self worth? reasons for this can vary from having had bad/mentally abusive relationships in the past to bad/dismissive parenting by your parents or simply high neuroticism traits (OCEAN personality theory).
    “The more I learn, the more I realize how much I don’t know.” – Albert Einstein
    Famously said by Albert Einstein, the above quote sums up this paradox very well. In tech especially, I have met a lot of people suffering from impostor syndrome. And I assume this is true for many other fields that have a huge variety of subdomains. It is impossible to know everything about tech/software engineering. The subdomains are simply too many; Web, iOS, Android, VR, Desktop Applications, Machine Learning, AI, Data Science and the list keeps growing. Chances are that if you’re reading this article, you’re also a knowledge worker, working in a domain where the number and variety of subdomains one can specialize in are a lot. The only sane course of action here would be to accept that you will never know everything and should stop competing with every Tom, Dick and Harry and instead focus on your niche that you are good for, that you got hired for.
    Or maybe it’s not you, it’s the company?
    My previous job had processes with many points of contacts and many moving pieces. To get the correct information about a certain task/requirement, it was vital to contact somebody since not everything was well documented. And since I didn’t know that this is how things worked, it took me longer than others initially to find out what the task consisted of. This was frustrating since my office was located in a different city than the company’s headquarter, where most engineers and designers were. Over time as I got acquainted with more people, they learnt my name on slack and remembered my face from meeting me in company events. They were then quicker to reply to my messages and I felt more comfortable pestering them with questions. I learnt that no matter how basic the questions may seem, if you’re new at a job, the best thing to do is just ask someone for help when you’re stuck rather than try to figure it out yourself. Especially when the issue was not direct help with the task but knowing tacit knowledge which a newbie at a company just does not know and doesn’t know how to extract this information since they are not familiar with team dynamics and the organizational structure.

    Why having a bit of an impostor syndrome is kind of healthy

    As long as your impostor syndrome is not totally overbearing you and disabling you from working; having a bit of an impostor syndrome will ensure you never feel too comfortable and are always striving to learn more. In a world full of arrogant people (especially developers) who think they know everything, it is sometimes good to be humble and open to others’ ideas.

    Having an impostor syndrome can also be because you are too young for the job and most of your colleagues are older than you. This means you’re ahead of them in life and need to be less harsh on yourself for not having experienced all the little nuanced cases in the industry. If anything, you should be happy that you have given yourself a head start and can use this time to cover more ground.

    Thoughts moving forward

    Time to tame your monkey mind. But sustained calmness is a lot like meditation, it sounds easy but is hard to practice consistently. You partly would have to rationalize to yourself that you will continue to feel these feelings for some time as you gain more experience. They will come in waves and eventually die out.

    Or it could be a sign that you’re slightly under qualified for the role. This is great because you never want to feel completely stagnant at a job. You have now been given the opportunity to grow faster and grow into a job role. You should always be aiming to get a job that is slightly above your reach, to push yourself out of your comfort zone and to learn new things. This is the only way to grow. The only thing you can do now? Keep grinding.
    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/
  • 开源日报第780期:《storybook》

    22 5 月, 2020
    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《storybook》
    今日推荐英文原文:《Canada fines Facebook almost $6.5 million over ‘false’ data privacy claims》

    今日推荐开源项目:《storybook》传送门:GitHub链接
    推荐理由:Storybook 是一个 UI 组件的开发环境。它允许你浏览组件库,查看每个组件的不同状态,以及交互式地开发和测试组件。Storybook 与你特定的应用程序无关,它关心组件本身而并非组件会用在何处,这允许你将眼光集中于组件本身,便于提高组件的重用性、可测试性和开发速度,而不必担心特定于应用程序的依赖关系。
    今日推荐英文原文:《Canada fines Facebook almost $6.5 million over ‘false’ data privacy claims》作者:Rachel England
    原文链接:https://www.engadget.com/canada-fines-facebook-almost-65-million-over-false-data-privacy-claims-000524114.html
    推荐理由:facebook被指控对加拿大人的个人信息的有隐私虚假或误导性声明,并与第三方开发商不当共享数据, 并因此遭受650万美元的重罚.

    Canada fines Facebook almost $6.5 million over ‘false’ data privacy claims

    Facebook is coughing up for another fine. This time the social network is handing over CAD$9 million (US$6.5 million / £5.3 million) to Canada as part of a settlement over the way it handled users’ personal information between August 2012 and June 2018. According to Canada’s independent Competition Bureau, Facebook “made false or misleading claims about the privacy of Canadians’ personal information on Facebook and Messenger” and improperly shared data with third-party developers.

    According to the Bureau, Facebook gave the impression that users could control who could see and access their personal information on Facebook platform when using privacy features. However, “Facebook did not limit the sharing of users’ personal information with some third-party developers in a way that was consistent with the company’s privacy claims.” Furthermore, Facebook also allowed certain third-party developers to access the personal information of users’ friends after they installed certain third-party applications. Facebook said it had canned this practice in 2015, but the Bureau found evidence that it continued into 2018 with some developers.

    In a statement to Reuters, Facebook said it “did not agree” with the finding, but wanted to resolve the matter quickly. “Although we do not agree with the Commissioner’s conclusions, we are resolving this matter by entering into a consent agreement and not contesting the conclusions for the purposes of this agreement,” a spokesperson said.

    The fine is the latest in a long line of penalties Facebook has been dealt for the way it handles user data. In the wake of the Cambridge Analytica scandal, which involved the data of some 87 million Facebook users worldwide — the company has faced multiple fines, including a record $5 billion from US regulators in January.
    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/
  • 开源日报第779期:《第三方登录 JustAuth》

    21 5 月, 2020
    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《第三方登录 JustAuth》
    今日推荐英文原文:《6 Programming Habits That (Surprisingly) Not Many Developers Have》

    今日推荐开源项目:《第三方登录 JustAuth》传送门:GitHub链接
    推荐理由:JustAuth 是一个第三方授权登录的工具类库,可以让我们脱离繁琐的第三方登录SDK。
    目前已支持Github、Gitee、微博、钉钉、百度、Coding、腾讯云开发者平台、OSChina、支付宝、QQ、微信、淘宝、Google、Facebook、抖音、领英、小米、微软、今日头条、Teambition、StackOverflow、Pinterest、人人、华为、企业微信、酷家乐、Gitlab、美团、饿了么和推特等第三方平台的授权登录。
    今日推荐英文原文:《6 Programming Habits That (Surprisingly) Not Many Developers Have》作者:Daan
    原文链接:https://medium.com/better-programming/6-programming-habits-that-surprisingly-not-many-developers-have-c58acd9a67f3
    推荐理由:好习惯伴随一生,无论学习,工作还是生活。

    6 Programming Habits That (Surprisingly) Not Many Developers Have

    Distinguish yourself from the herd

    When it comes to being a good programmer, there are certain habits that immediately pop up in your mind. There are some habits that most programmers would agree are great to have, but in reality, most of them don’t have these habits themselves. As we all know, we are defined by our habits. To become a better programmer, we should try to build great programming habits. Here are six great programming habits that you should try to build to stand out from the pack.

    1. Clean Up Your Code

    A great programming habit is that whenever you change a piece of code, you should try to improve that code — it doesn’t matter whether you’re just fixing one line of code or adding an entirely new feature to the existing code.

    Robert C. Martin had a great quote for this habit that was based on the Boy Scout Rule:

    “Always leave the code you’re editing better than you found it.”
    You’ll be amazed by how many small things you can improve while reading through some code. The changes that you make can be as small as renaming a variable or function. Just make sure to do at least one improvement at a time. You’ll leave the code in much better shape and heavily reduce the number of code smells.

    The reason why this is such a good habit to have is that we learn constantly. Things that were considered to be good yesterday can be done better in some other way today. Code tends to rot over time, so taking care of your code is essential to keep it maintainable.

    2. Think About Who’s Next

    Whenever you’re writing a piece of code, you should think about what the next developer is going to find when looking at that piece of code.

    Write that piece of code with the mentality to make it easily understandable and as readable as you can. The ratio of time spent reading code versus writing code is well over 10-to-1. This means that you can save a lot of time in the long run by putting in a little more effort into making your code readable.

    Don’t try to be fancy when it comes to coding — write simple code that everyone can understand. There’s really no need to do some magic one-liners that you’ve copied from Stack Overflow that you don’t even really understand yourself.

    3. Do What’s Needed — Not More Than That

    Developers tend to have the weird habit of overdoing things. When a certain feature is requested most developers will build something extra “just in case.”

    This is what we call overengineering, which is the art of overdoing things. Code is made more robust or complicated than necessary. The thing with overengineering is there’s no good reason for doing it.

    Most of the time, the reason that more gets built than what is really necessary is based on speculation. The developer is already adding code that might be helpful in the future, based on their own thoughts. This additional piece of code gets added to the codebase, but it probably never gets used.

    Overengineering can lead to code that is being designed to be so generic that it loses sight of the main task that it was initially designed to perform. Therefore it becomes not only hard to use but fundamentally unintelligible.

    4. Plan Your Code

    Real programmers love to do one thing and one thing only, and that’s programming. That shouldn’t really shock you. So the obvious thing that happens is that most programmers jump straight into the part that they love the most when they get assigned a certain task.

    They start coding immediately.

    Rushing into the code might seem exciting at first. However, that excitement might end up costing you a lot of time. When jumping straight into the coding part, you’ll eventually lose sight of the bigger picture.

    Before you start coding, you need to plan and organize. Think about problems that you might find along the way and how can you tackle them. How will you structure your code? What’s the reason that you’re going to implement this feature?

    These are all great questions to ask yourself before you start coding. These questions can make you more aware of the fact that there’s a lot to think about before writing code.

    5. Document

    Yes, I know… Definitely not the fanciest habit on this list but a great one to have. Documenting your work is extremely important.

    Did you ever have to check out a repository that didn’t have any documentation about how to set up everything properly or how the application was supposed to work?

    After reading through the code for a couple of hours, chances are that you still didn’t have a clue. That’s when you wished for some documentation.

    As a bare minimum, I would recommend a proper readme.md for your projects that explains what the application is supposed to do and how you can get it up and running.

    The exciting part about documentation is that you could do it while coding. Take some time to think about descriptive variable names — this will pay for itself. Choosing good names for your variables, methods, and classes takes time, but it saves more time than it takes.

    If you want to read more about how you can create meaningful names in your code, read this article that I’ve written.

    6. Never Stop Learning

    As Isaac Asimov said, “The day you stop learning is the day you begin decaying.” This is especially true in the tech world, where things change at a rapid pace.

    It’s impossible to keep up with everything that changes, and even if you could, I wouldn’t recommend it. Don’t take this to the extreme, but it’s good to learn a new framework or programming language every once in a while.

    This doesn’t mean that you have to become an expert in all of these programming languages or frameworks. It’s good to experiment with some of them and see whether you like them.

    You’ll gain a lot of new insights into how certain problems are solved in other programming languages or frameworks that will help you grow as a programmer.

    Wrapping It Up

    When it comes to being able to distinguish yourself as a programmer, there are numerous habits that you could build. We’ve gone over six of these habits that the majority of developers don’t have.

    These are the habits that will make you stand out:

    + Clean up your code + Think about the next person who has to look at your work + Don’t do more than needed + Plan your code + Document your work + Never stop learning Try building these habits for yourself, one at a time. Remember that it takes time and consistency to build them — it won’t happen overnight.

    Thanks for reading!


    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/
←上一页
1 … 63 64 65 66 67 … 262
下一页→

Proudly powered by WordPress