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

开源日报

  • 开源日报第742期:《换个背景 Background-Matting》

    9 4 月, 2020
    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《换个背景 Background-Matting》
    今日推荐英文原文:《How to Thrive as an Average Programmer》

    今日推荐开源项目:《换个背景 Background-Matting》传送门:GitHub链接
    推荐理由:该项目能够捕获并修改照片中的背景,在家里蹲累了的话,抄起电脑来一次云旅游也未尝不可。
    今日推荐英文原文:《How to Thrive as an Average Programmer》作者:keypressingmonkey
    原文链接:https://medium.com/better-programming/how-to-thrive-as-an-average-programmer-1dd202540ac
    推荐理由:我们并不都是天才,但都是主角。

    How to Thrive as an Average Programmer

    A survival guide for us non-prodigies

    (Photo by Fernando Hernandez on Unsplash.)
    It’s something that’s hard to admit and not exactly something you’d find on my official resume: I’m an average programmer. I understand (most) code, but I don’t dream in .Net core. Rubies and gems are things I have no money for because I don’t write enough Ruby. I haven’t built my own framework, and when I switch between programming languages, I reach for the cheat sheet if I need it.

    This isn’t to say that I don’t like coding. In fact, I love it as much as it makes me want to switch jobs in the span of minutes. I hate agile methodology with a passion because it’s always spouted by people who think that it’s somehow a completely new concept we all need excessive training for. I could rant for hours about the things gone wrong in my small corner of the tech world — let alone the world at scale.

    And yet I go to bed happy to have a job that I love, that keeps me just sane and insane enough to get me through the day without dripping hot wax on my fingers just to feel anything. It’s a comparatively good life, and I hope to show in this article how and why I learned to enjoy it and get pretty good at what I do.

    Start by Not Hating What You Do

    To like or even love what you do isn’t something you can just do with the flick of a mental switch, but you can stop hating it. I came into coding more by accident. I was good with computers, so I sent out some applications and somehow scored an apprenticeship despite not having the slightest clue about coding. I did my apprenticeship together with a mass of people who had chosen this job and worked hard to get the skills that made them interesting to employers. They were and still are lightyears ahead of my skills when it comes to bare coding.

    There are other areas of a programmer’s life. We’ll get to that in a moment, but for now, let me summarize by saying that there’s some tiny area of your job that is cute, quirky, enjoyable.

    I had the luxury of pretty extensive database access even during my apprenticeship, and since I was often left alone to roam, I started digging into statistics. How many customers do we have who have this, that, or this again? How many emails does the average customer write? What are the most common reasons for contacting us?

    In the end, I became a bit of a database detective, quick to dig into whenever someone needed statistics or run mass updates to save our customer support guys hours of time. This was never part of my official job description, but then no one ever complains when you use available time to help someone.

    Unlike my normal work, I did not hate this. In fact, it was quite fun and, on occasion, I would find a chocolate bar on my table as thanks for the help. By the way, that’s an easy way to get your code monkey to like you — even though I don’t like chocolate and only give it away to coworkers in need.

    “Git Gud” at What You Do

    (Photo by Àlex Rodriguez on Unsplash.)
    I have always lived by a general rule that mastery in one area isn’t as desirable as getting decent at several things — and in programming, that is even truer.

    There are various ways to do your job well, either through hard work or just through experience and being fast at fixing bugs others would take much longer with. If you manage to keep your head above water for a while, you’ll start seeing light on the horizon, start to understand how the system works, and you’ll find your own little workarounds for problems that may put sweat on other people’s heads while they imagine all the things that could go wrong.

    Part of my work contains such atrocities as “production database tests,” where I bypass, trick, reverse, and edit against the live database to fix critical errors that I can’t test since the test database is only cloned once a week and never when you need it. “Pray and commit,” as I like to say. What’s the worst that could happen?

    It may lead the purists at work to a minor identity crisis, especially considering there is no way to unit-test this stuff and I committed straight into the master branch since I’m the only one working on this system anyway and have no one to approve my pull requests. It took me some time to bypass those stupid rules to permit check-ins to the master branch, and I’m proud of that. Desperate times call for desperate measures.

    All of this is to say that there are many shades of “gud” in the world of programming. Even if that only means being there when things break in spectacular fashion and being the kind of guy who owns up to his mistakes and mops the floor after.

    I’m deep into the “chaotic good” corner, but just as I have found my niche there, you can find yours in the opposite where you have your whole system in order, where the tasks are so damn well-formatted that even someone without coding skills can take over your work when needed, and where they all have just the right amount of story points assigned to them. Expertly crafted user stories, elegant displays of law and order in a world where there is none — that’s the stuff that makes your team leader see your face in his dreams.

    Do Something Fun With Your Skills (and Learn New Ones)

    (Photo by Gemma Evans on Unsplash.)
    Programming is a line of work that enables you as much as it challenges you. These days, almost anything can be built with open-source tools and languages. There’s a tutorial for pretty much everything you might encounter on a hobby scale.

    So use your skills and go from there. Build something stupid like a random quote generator or something practical like a website that solves problems for people and makes you rich from the subscription fees. Or just work on any kind of project that seems fun. I spent an ungodly amount of time building a sex story generator in PHP once because I like pain and also I wanted to understand PHP after hating it too much for too long. Now that I think about it, that project might warrant an article of its own. It was quirky enough.

    The point here is that most of the time, you only have to spend time — not money — and there are plenty of tutorials out there to get you going.

    Realize That Programming Is More Than Writing Code

    (Photo by Brooke Cagle on Unsplash.)
    It took me a while to realize and also some time for people to start trusting me with the responsibilities, but little by little, I transformed my whole job into something entirely different from where it started. I write comparatively little code these days — just enough to keep calling myself a programmer, really.

    Instead, I ended up being the single maintainer for a decently complex, decently crucial system at my company with all there is to it. I organize my work, communicate with my team and colleagues in general, attend meetings to lend my expertise and input, and run everything front to back as best as I can.

    While admittedly stressful, I enjoy this style of work a lot. No day is ever the same, and since I’m on the receiving end of all the annoying stuff — from tiny bugs causing big drama to the meetings I would rather skip — I’m always happily supplied with office drama to keep myself occupied.

    I also get to enjoy the late nights at the office with other workaholics, those amazing times of relaxed-yet-focused work when people from various departments assemble in one room and work hand in hand because the deadline is so rapidly approaching. I love being in a room where everyone pulls their weight — and being accepted, welcomed there. Finding a missing space in a concatenated SQL query after two hours feels a lot less horrible when the people next to you have to fight their own demons.

    Understand Your Company’s Architecture and Ecosystem

    (Photo by Dave Mullen on Unsplash.)
    The other week, we had a critical system breakdown — one that I don’t maintain, but the maintainer, his vacation replacement, and the other guy who might have known something were away ill or out of the country.

    I had a general idea of how the program worked, got on the case, and was eventually joined by two other people who were as clueless as I was. But in the end, we managed to narrow the error to a server fault, and together with the third-party company that sold us the system, we eventually managed to get everything working again early Saturday morning.

    Sure, it was a wasted day for half the company, but that could have been two or three days. That was easily our respective year’s wage in savings there because we had a general understanding of how the systems work together to pinpoint the error and dig through log files.

    It was honestly one of the wildest times in recent memory — and one of the most fun ones. I even got a “good job” email from the department boss and he briefly knew who I was when I ran into him on the floor. Luckily, that never lasts and I can return to the anonymity of the void. Thank god.

    Communicate

    I went through a time at my company where I came within inches of being fired — it’s easy to understand how and why if you read this far — for exactly the same work I am commended for these days. That’s a whole other story for another day, but let me summarize it by saying that communication made all the difference in how my work was perceived.

    Do all the useless baggage stuff like writing thank-you emails whenever someone notifies you of an error, respond when it’s fixed, and no matter if they care or not, write a quick one-minute explanation of why the error happened in the first place and how you fixed it. Not only did I learn that a surprising amount of people like when you tell them this stuff, but it also runs its course and comes back to you eventually. Respond, answer, anticipate, prepare, spend an hour a day just talking to people.

    Over the course of this thing, I picked up a motto I live by these days: Explain things to idiots and watch them become people.

    Conclusion

    I hope you enjoyed this post or even found it useful. It sure saved my ass from getting fired or quitting and buying a cabin in the woods to get away from all tech. Those thoughts are reserved for Wednesday afternoons now.

    Thanks for reading!


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

    8 4 月, 2020
    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《covid19》
    今日推荐英文原文:《How to Get a Developer Job With No Experience Like I Did》

    今日推荐开源项目:《covid19》传送门:GitHub链接
    推荐理由:这个项目是日本方面的新冠病毒对策网站,尽管有些通告还是日文版,但是还是有配备了中文的新冠病毒咨询流程图等可以用于获取情报,希望现在在国外的朋友们一切小心。
    今日推荐英文原文:《How to Get a Developer Job With No Experience Like I Did》作者:Syk Houdeib
    原文链接:https://medium.com/better-programming/how-to-get-a-developer-job-with-no-experience-like-i-did-2cbede58a5d6
    推荐理由:很明显,找到工作需要的东西不只是经验

    How to Get a Developer Job With No Experience Like I Did

    Believe it or not, you don’t need a degree or a bootcamp to get your first job

    There’s a lot that you can do to improve your chances of getting that first job in tech. Your programming skills are not the end of it.

    Without experience, you will need to take steps to convince employers that you deserve a chance. Here’s how I did it.

    Intro

    I took a nervous sip from my drink as I sat down in the bar with a group of developers. This was the last step in my interview process. To meet the team and see if I’m the right culture fit.

    I couldn’t believe I’d gotten that far! I had no experience as a programmer and had only started coding a few months earlier.

    I was worried about getting technical questions that would reveal my lack of experience.

    To my pleasant surprise, the technical stuff that came up all centered around my GitHub projects. They’d taken a look at what I had there and they were commenting on what they saw. That was comfortable for me, I could talk about these projects.

    How did I manage to make it that far in the job search process without previous experience?

    So, you are on your way to learning the skills needed to become a developer. It’s important to know that learning your programming language and other related tech is not enough to get a job. You need to make yourself visible for employers and then give them a reason to want to talk to you.

    The good news is that there are solid steps that you can take to dramatically improve your chances. You want to start taking care of these as early as possible. So that by the time you are ready to start searching, you already have a good base to build on.

    In this article, I want to share with you the cornerstones of what is needed to get a job. We’ll focus on the things that will help you tell a story employers want to engage in.

    Resume

    Let’s start from the beginning. You need a good resume.

    That’s the first thing an employer is going to see. Even though you might not have relevant experience to show, you still need to pay a lot of attention to your resume.

    Sometimes, a busy employer might only skim over a resume. You have a few seconds to try and catch their eye and get them to want to look into more details.

    Keep it simple and concise

    There’s rarely a reason to have a resume longer than a single page.

    Get referrals

    Something that’ll make a big difference is to get someone from inside the company to refer you. This will give your resume a real chance to be seen.

    Reach out to people you know or old contacts. Not all of us have friends working for top companies, but there are solutions.

    For instance, I recently discovered Rooftop Slushie where you can receive referrals from developers who work at companies such as Google. Developers can recommend developers better than recruiters can. They know what they’re looking for in colleagues.

    Get your resume reviewed by other people

    We are usually terrible judges on how we present ourselves. Some of us have over-inflated egos and others have low self-esteem, and this shows in your resume. Get people you trust to have a look for you.

    Keep all tech-related stuff at the top

    Other experiences and education lower down.

    You might not have any tech experience, but you should mention something about personal projects you did. Or anything else that gives the employer a sense of your progress as a developer.

    Don’t add an endless list of previous experiences

    Choose the ones that are most important, highlight the things that show what kind of person you are. Add the things you want them to bring up in the interview.

    Don’t embellish and don’t use gimmicks

    Skills progress bars, I’m looking at you … Present the information in a visually appealing but not a distracting manner.

    The best example I saw recently is by my friend Vanessa. She had a simple two-column bullet list of technical and soft skills she had. Right at the top. Clear and effective. Here is the stuff I know at a glance. When we get to the interview, we can get into the details.

    My own resume still features the dreaded progress bars. I have all the intention to remove them soon.

    GitHub

    I mentioned GitHub in the introduction to give a sense of how important it is for a budding developer.

    If you don’t have a GitHub account yet, create one today! Seriously. This is your resume, your portfolio, your work experience, and everything you know about code rolled into one.

    Push everything you do to GitHub. It doesn’t matter if it’s a tutorial or a tiny project. An active GitHub account shows you’re serious and demonstrates your progress.

    It’s what any serious employer will look at in detail to determine if they are interested in moving the selection process forward or not.

    One thing that worked really well for me was to create a learning tracker on GitHub where I track the skills I’m developing and the resources I use. I still use it all the time, it’s become a central reference point for me.

    And I can imagine this would be very useful in the selection process because it would have a much more detailed account of your learning than you should squeeze in a resume.

    Plus, it helps you stay active on GitHub even when you don’t have code to push.

    Portfolio

    Build your own site to showcase who you are and what you do. The process of doing so is a great learning experience.

    Don’t be intimidated, you only need basic HTML and CSS skills to get started. You can always improve it and add to it as time goes by and you acquire more skills.

    This should be the one-stop to find everything about you that you want the employers to see. Links to your GitHub and relevant social media. Projects you worked on. Anything noteworthy or interesting to share.

    It’s also a great place to give a sense of your personality and what kind of person you are. A resume is concise and dry and GitHub is all about the code. So, this is your first chance to add the missing dimensions. You don’t need to go overboard with the design, but it needs to look good.

    What I learned building my portfolio became the backbone of my knowledge. And the evolution of it over time is a way for me and others to see my progress.

    Projects

    Build projects. No matter how simple.

    When I heard this advice early on in my learning experience, it always sounded scary. I can’t “build things” before I’ve learned how to code!

    Well, it’s mostly the other way round. You learn to code as you build things. You learn in context to what you are trying to do.

    But I suppose the word “build” makes it sound serious. The thing is, we are not talking about creating the next social media app! It doesn’t matter how simple or even pointless a project is.

    The act of working on it and trying to find answers to solve the problems you have is the best learning experience. And it gives you the stuff to put in your GitHub and portfolio.

    And, it could become the central talking point in your interview. This is what I learned, this is where I got stuck, this is what I’m working on.

    You already know how this was my saving grace in that final phase of my interview.

    Social Networks

    Use the power of Twitter and LinkedIn. If used correctly, they can be great tools in helping you throughout the journey of learning and looking for a job.

    Find the active communities in your area and connect with them. Tech communities can be small in most places and people get to know each other quickly. This might play a vital role in helping you get your foot in the door.

    For me, Twitter was central to my job hunt. As a complete outsider, finding the local communities gave me a ton of useful information and connections. And besides, people can be occasionally nice on Twitter, which is good. (That’s a blatant stereotype, most people I know on Twitter are adorable!)

    Networking

    Go to meetups and tech conferences. Network, talk to people.

    If you are a beginner and you feel you know nothing, you’ll think you are totally an imposter. You haven’t earned the right to go to tech events.

    But here’s the thing. No one is going to suddenly stop you in the middle of the crowd and ask you to speed code a new app live in front of everyone to prove you belong there! Most people are respectful and nice (again, this seems to be a running theme!).

    And even if you find yourself in a technical conversation that you don’t understand, saying that you are a newbie is not going to cause a warning siren to go off.

    I always found people very interested in what I was learning and how I was doing it. You get encouragement, you get to see the tech community up close, you’ll hear some talks, even if it all sounds like gibberish to you.

    But most importantly, you’ll meet people and that’s very important in helping you find a job.

    Apply to jobs

    I mean, it’s obvious. But you need to apply for jobs to get one. There are three things you need to know.

    You don’t decide when you are ready for the job

    The employer does. So stop agonizing about when you should start applying. You’ll never feel ready. Once you have a couple of projects in your GitHub account, start applying and let employers decide if you are ready or not.

    Don’t look exclusively for junior positions

    Don’t be intimidated by the long list of technical prerequisites in the offer. If a company has an offer out, it means they are hiring, and that’s what you are looking for.

    The offer is their hyper-idealized candidate. It doesn’t mean that they would never consider you. They just might.

    I wouldn’t send hundreds of applications though. Job hunting is time-consuming. So, taking the time to research and prepare an application is a better time investment.

    You will get rejections. You will get silence

    It’s normal. It’s not a reflection on your future chances of getting a job. Keep working, keep improving. Figure out what steps in the hiring process need polishing. Ask for advice. And keep coding.

    Every day you are improving your skills, you are closer to convincing an employer to want you on their team. Perseverance is the key.

    Cover Letters

    Write a compelling covering letter. Tell your future employer why they should hire you.

    It’s your big chance to get their attention. Don’t send a generic one. Research the company, understand what it’s about. Visualize the person who’ll be reading this. And tell them something that’ll make them want to read more.

    Never forget that it is a normal person on the other side who is just as susceptible to getting bored or excited as the rest of us.

    If they are sifting through a bunch of applications, they would have read what a great team player everyone is and how well they all can handle pressure. You need to tell them something else.

    In my cover letter to Lola Market, I told them that I knew the position they advertised was for a senior. But I explained how I was changing careers and looking for the team to help me make the transition.

    My CTO, the one who gave me the job, tells me how it was this that got them curious to start the interview process with me.

    This was an interview process that went through several phases. And all the steps I mentioned played a role in pushing me forward in the process. A process that culminated in that bar as I sipped nervously on my drink hoping with all my heart that they would say yes.

    And they did! They gave me my first developer job. And it was such a proud and exciting moment. All the hard work was totally worth it.

    I really hope you too can experience this life-changing moment soon. Hopefully, this article shines a light on the steps you need to take on the path towards that goal. Good luck to you, and keep pushing.
    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/
  • 开源日报第740期:《机器学习 Scikit-learn》

    7 4 月, 2020
    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《机器学习 Scikit-learn》
    今日推荐英文原文:《Top Developer Soft Skills to Learn》

    今日推荐开源项目:《机器学习 Scikit-learn》传送门:GitHub链接
    推荐理由:Scikit-learn是一个基于NumPy,SciPy和matplotlib构建的Python机器学习模块,一个简单高效的数据分析工具。官网链接:https://scikit-learn.org/stable/
    今日推荐英文原文:《Top Developer Soft Skills to Learn》作者:John Au-Yeung
    原文链接:https://medium.com/@hohanga/top-developer-soft-skills-to-learn-422c38ac2dd7
    推荐理由:敲代码并不是全部

    Top Developer Soft Skills to Learn

    (Photo by Alistair MacRobert on Unsplash)
    If you want to become a successful developer, you have to learn more than writing code to become successful.

    In this article, we’ll look at some soft skills to learn in order to become a successful developer. Like any job, soft skills are also pretty important given that we can do the technical work.

    Diversify

    We have to be open-minded about different things. Being able to learn different things and unlearn outdated or bad knowledge is a must.

    Therefore, it’s important to learn things outside of our jobs in case we need them. So if we’re working on Rails now, we should also learn about Node and Express, for example.

    This also go with general principles like learn functional programming when we’re using object-oriented languages mostly. They aren’t mutually exclusive.

    For instance, JavaScript has both functional concepts like higher-order functions included in the language and also object-oriented concepts like objects, prototypes and inheritance included.

    This way, we can be useful to more people and it also adds different perspectives to enrich how we think about different things.

    We won’t be as narrow-minded if we learn different ways to do things.

    Computer things change fast, so we must adapt so we won’t be useless and unemployable in the near future.

    Be Agile

    Being agile means that we should be prepared for changing requirements or projects at any time.

    Our minds can’t be fixated in anywhere so that we can understand users’ use cases for a software product.

    Also, we got to be understanding to customers and incorporate their feedback into our product.

    Therefore it’s best to just do a small piece of a product at a time. This way even is feature changes, we won’t have to go back to everything over again.

    It also makes implementing anything more manageable since we won’t be overwhelmed with anything.

    Empathy

    Having empathy is important. Since most software projects are teamwork-based and software is used to serve customers, it’s best if we have empathy for users since they pay for the software that we write.

    Any feedback should be incorporated into the product if they make sense and lots of customers request them.

    We should also have empathy for our teammates since they work hard and will probably touch each other’s code at some point.

    This means that we should write clean code and communicate changes. We should take a teammate’s suggestions if they make sense.

    Always, try to see things from their point of view and why they want us to make changes their way.

    Communication

    Communication is both verbal and written. Verbal communication includes things like giving updates verbally and pair programming for example.

    If we speak, we should speak clearly and with confidence. Also, we should listen more than we speak and don’t interrupt people.

    These are just some basic etiquette that we should follow so that everyone has their chance to speak and be listened to.

    Also, we should never dominate any conversation so that everyone has their chance to speak.

    For written communication, we should write everything down. Things like updating the status and description of tasks are important.

    Also, documenting instructions for how to set things and run when run things are also important.

    In our code, we should write them so that that they’re self-documenting. So variable names should convey their meaning. This also goes for other things like functions, classes, or anything that has names.

    Each function should be simple enough so that they only do one thing as indicated by their name.

    (Photo by Yomex Owo on Unsplash)

    Teamwork

    Teamwork is important since most software projects are worked on by teams.

    There’s just no way around it. It’s not only developers that we’re working with, but also designers, and different project teams.

    We have to work with others well to become successful. Working well with others makes work a lot more pleasant then if we don’t.

    Conclusion

    Having a diverse and open-minded mindset is important if we want to become or continue to be successful as a developer.

    Software things change all the time so we have to adapt to them. We should also be open to other things outside of what we do at what or at previous jobs.

    Teamwork is important since most developers work in teams. So working well with others makes work more pleasant than if we don’t.

    Finally, communication is important since we have to update and help each other in teams. Also, it’s important to be good at both verbal and written communication.


    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/
  • 开源日报第739期:《Resources-for-Beginner-Bug-Bounty-Hunters》

    6 4 月, 2020
    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《Resources-for-Beginner-Bug-Bounty-Hunters》
    今日推荐英文原文:《My story of transitioning from Mac to Linux》

    今日推荐开源项目:《Resources-for-Beginner-Bug-Bounty-Hunters》传送门:GitHub链接
    推荐理由:本项目向各位计算机小白介绍, 作为一名hacker,需要熟悉应用程序的工作原理,需要掌握的技术、术语和主题。作者把这些资源放在一起,以帮助小白学习 Web 应用程序安全的基础知识。
    今日推荐英文原文:《My story of transitioning from Mac to Linux》作者:Clayton Dewey

    原文链接:https://opensource.com/article/20/4/mac-to-linux
    推荐理由:如果你想要尝试linux操作系统,但又不会与mac os差距太大,那么试试 Elementary OS Linux 吧

    My story of transitioning from Mac to Linux

    There’s growing awareness in the design community about the importance of design ethics and the way proprietary technology subjugates users. As a user experience designer, I believe technology should be designed to respect the earth as well as creators and users. Using and contributing to Linux is one way to align my design ethics with my practice.

    This is why I bought a ThinkPad and installed the Linux distribution Elementary OS, even though macOS is, by far, the most popular operating system among designers. Linux doesn’t have a great reputation for ease of use, and switching operating systems can be disorienting and frustrating. When I told people I was making the switch, many (especially designers!) thought I was foolish. However, after making the switch, I am happy to report that I have a design workflow that I really love and an operating system that aligns with my values.

    If you’d like to see what it’s like to switch from macOS to Elementary OS, read on to learn from my experience.

    Elementary OS strong user experience makes it a great operating system for designers,

    Plan for the applications you will use

    First, make a list of the tools you use regularly. For me, they are:

    • Sketch: designing
    • Marvel: prototyping
    • Firefox: web browser
    • Tomighty: Pomodoro timer
    • Skitch: taking and annotating screenshots
    • Standard Notes: notetaking
    • Adium, Signal, Slack, Telegram (Does anyone else feel my pain here?): messaging
    • iTunes and Spotify: music
    • Sublime Text: writing HTML and CSS, coding
    • Thunderbird: email Next, check if those programs are available on Linux. AlternativetTo is a good resource to find software alternatives.

    Luckily, I was already using a lot of free and open source software. However, the most important application for me is Sketch, which is not available on Linux.

    I was hoping I could switch to an open source software tool for designing and prototyping. I tried out Glimpse (a fork of GIMP), Krita, and a few other tools, but none were stable or had the feature set and workflow I wanted. I am keeping an eye on these projects and hope to switch to one of them if the functionality meets my needs.

    Instead, I chose Figma. Although it is proprietary, I appreciate its relative openness, its mission to make design accessible, and its ease of use. Because it’s web-based, I can replace both Sketch and Marvel with Figma. There is also a native app that I really like.

    Skitch is only available on macOS. So, after some research, I landed on KSnip, which is a fantastic screenshot tool. Because I like it so much, I wrote Annotate screenshots on Linux with Ksnip.

    Install and set up ElementaryOS

    After ensuring that you have Linux-compatible apps for all your needs, the next step is deciding on your hardware. You could install Elementary alongside macOS, which would be a great way to try things out before fully committing.

    Instead, I started fresh with a new ThinkPad. I followed Elementary’s installation instructions and donated $20 to support the project. The beauty of free software is its emphasis on customization. Many settings in Elementary are configurable, and you can customize Elementary to match the workflows you know and love.

    The Elementary experience mirrors macOS in many ways, so you might be pleased with how little you need to configure.

    Keyboard shortcuts

    The first thing I customized was the keyboard shortcuts. There are only a few shortcuts that differ between macOS and Elementary. If you don’t want to work against your muscle memory, configure all shortcuts to your liking at System Settings > Keyboard > Shortcuts.

    Apps

    Elementary comes installed with a few really helpful apps, such as Calendar, Epiphany (a web browser), Mail, and Music. It’s worth trying them out. If one works for you, then that’s one less application you need to worry about installing.

    Transfer your data

    After switching to Elementary, I realized just how little data I save locally. Most of my work is saved to a Nextcloud file share hosted by my tech co-op May First. I transferred all the other files I needed using a USB stick.

    Learn Elementary’s design patterns

    While it’s similar to macOS, Elementary has a few important differences. You could still try and override them, but you might want to just get used to them.

    Tabbing between applications

    On macOS, I perpetually switch between applications with Alt+Tab and the Alt+Arrow keys. On Elementary, you also use Alt+Tab to switch between apps, but the Alt+Arrow keys are not supported. If anyone knows how to customize Elementary to do this, please leave a comment because I’d love to have that feature back.

    In macOS, you can switch between different windows in the same application with Alt+~. This is not supported in Elementary. Instead, Alt+Tab cycles through all windows, regardless of the application it belongs to. You can, however, switch between different windows by hovering over the application icon and scrolling. You can read a full list of methods for switching between windows and workspaces on StackExchange.

    Screenshot of Elementary OS’s keyboard shortcuts configuration screen. Most of Elementary’s shortcuts are the same as OSX, but you can configure any of them to your personal preference.

    Get familiar with support

    Linux, unlike Apple, is built and maintained by communities. Elementary is supported by Elementary, Inc., but it thrives because of its larger community. It has done a great job of fostering a community that helps one another out.

    It’s inevitable that you will get stuck or have a question. When you do, you can turn to:

    • Elementary’s GitHub repository: Report a bug, request a feature
    • Elementary on Stack Exchange: Ask a question or search for an answer to a question someone has already asked When you seek out help, remember to do it from a place of compassion. We’re used to having transactional—even antagonistic—dynamics with the tech tools we rely on. With Elementary, you’re not talking with a faceless corporation but a community of people, many of them volunteers, who genuinely want to help.

    Get comfortable with the command line

    The reality is that there will probably be times when doing something in Linux requires you to use the command line. If your work keeps you away from the technical side of things, the commands you need will probably be minimal and straightforward. Still, it’s good to get comfortable with the basics—once you have, you may very well find you prefer the command line over a GUI approach. Codecademy is one place you can learn command-line basics.

    Learn to install apps

    A great feature of Elementary is its curated AppCenter. Curated apps are designed with Elementary in mind, so they may work smoother than other apps. It uses a pay-what-you-want model that strikes a balance between supporting app developers and maintaining its free and open spirit. Plus, Elementary just successfully fundraised for a week sprint to improve security and the user experience even more.

    App developers name a suggested price, which users see but then have the option to pay what they want.

    However, there may come a time when you’ll need to install apps not found in the official store. One mistake I made was to start installing apps in a variety of ways (e.g., the apt-get command, Snaptastic, and Flatpak), rather than picking one method and using it as much as possible. The more ways you install apps, the harder it is to keep track of how you installed what and which method is the proper way to run updates.

    My recommendation is to stick with AppCenter as much as possible. If you must venture out, I recommend Flathub because Elementary adopted Flatpak for its AppCenter.

    Contribute back

    Elementary is free to download, and so are most of the apps. You can donate to Elementary (or buy a tee shirt or mug from the store) and the creators of the apps you use. You can also promote those projects by telling your friends and colleagues about them. You could even offer your skills to the projects you admire the most.

    Since I made the switch, I feel great about being further involved in the free and open source software movement and appreciate the speed and efficiency with which I can work in Elementary. If you use Elementary (or try it out), please share your experience in the comments.
    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/
←上一页
1 … 73 74 75 76 77 … 262
下一页→

Proudly powered by WordPress