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

开源日报

  • 开源日报第650期:《git-flight-rules》

    25 12 月, 2019
    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《git-flight-rules》
    今日推荐英文原文:《The PC is dead. Long live the cloud PC.》

    今日推荐开源项目:《git-flight-rules》传送门:GitHub链接
    推荐理由:Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理,得到了大多数程序员的青睐。但是出问题要怎么办呢?git-flight-rules就是关于出现问题后应该怎么做,是一套非常详细的标准处理流程。
    今日推荐英文原文:《The PC is dead. Long live the cloud PC.》作者:Steven J. Vaughan-Nichols
    原文链接:https://www.zdnet.com/article/the-pc-is-dead-long-live-the-cloud-pc/#ftag=RSSbaffb68
    推荐理由:在如今技术更新换代飞速的时代下,普通的PC逐渐被基于云服务的PC取代。作为IT界的大佬–微软,也将跟上这一潮流,推出基于云服务的PC。

    The PC is dead. Long live the cloud PC.

    The old-style PC is on its way out. It’s being replaced by desktop-as-a-service, cloud-based PCs.

    The containerization of Windows This is enterprise-grade cloud security technology being distilled for the masses. ZDNet’s Ed Bott recently pointed out how — a decade ago — people predicted the death of the PC, only for events to show that the desktop PC was still alive and well. That’s true. And the PC will live on for now. But I’d argue that what’s under the hood is transforming from a user and PC-centric operating system to a desktop-as-a-service (DaaS), cloud-based model.

    Microsoft is giving up on Windows on the PC. In its place, Microsoft is rolling out its Windows Virtual Desktop (WVD). The Windows Virtual Desktop client is available across Windows, Android, Mac, iOS, and HTML 5. In other words, if you have a browser and a PC, you’ll be able to run Windows as a DaaS.

    Microsoft is promoting this not just as a Windows desktop alternative, but as a path forward for die-hard Windows 7 users. As Brad Anderson, corporate vice president for Microsoft 365 wrote:

    “With the end of extended support for Windows 7 coming in January 2020, we also understand some customers need to continue to support Windows 7 legacy applications as they migrate to Windows 10. To support this need, you can use Windows Virtual Desktop to virtualize Windows 7 desktops with free Extended Security Updates (ESU) until January 2023.”

    If you’re really, really stuck on Windows 7 and have a small business, this may be your best path forward. As Bott observed in a recent article, and as I’ve found with my small business buddies who won’t give up on Windows 7, there’s no easy way to buy ESU patches even if you’re willing to pay for them.

    It’s clear as crystal. Microsoft sees the future of Windows on the cloud, not on the desktop. For now, its virtual desktops are aimed for business users, but I have no doubt it’ll be pushing WVD for consumers soon enough.

    In the meantime, Microsoft is exerting ever more control over your existing desktop. For example, users recently discovered they have no choice but to view small banner ads in the Windows 10 Mail and Calendar UWP app for Windows 10. When asked about this built-in spam, Microsoft replied:

    “The ads within the app itself will be displayed regardless of which email address you use it with. It is not removable.”

    Great. Just great.

    So, yes, the desktop PC and its portable laptop sibling will be with us forever. While most people can get back with a smartphone or a tablet, people who do work will always need a pointer, a keyboard, and a decent-sized display. Microsoft, which made its fortune with the PC, is taking us back to the 70s mainframe/client desktop model.

    Now, I’m OK with that to a degree. I am, after all, a big Chromebook supporter. But there are times I want to be in control of my desktop.


    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/
  • 开源日报第649期:《打包机 webpack-box》

    24 12 月, 2019
    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《打包机 webpack-box》
    今日推荐英文原文:《7 Ways To Make Software Developers Happy》

    今日推荐开源项目:《打包机 webpack-box》传送门:GitHub链接
    推荐理由:洋洋洒洒写一大串的浏览器页面,然后抬出打包机来整合,这串步骤应该是 web 开发里的家常便饭了。这次要介绍的项目是 webpack(一个现代 JavaScript 应用程序的静态模块打包器)的使用手册,因在你需要为页面加入新功能时,同时也可能需要各种各样的自定义配置比如新增各种插件等来调整 webpack,而这些配置兴许已经有人完成过了,在调整配置为页面加入新功能时可以作为一个参考,以此避免失误把什么地方给碰坏了。
    今日推荐英文原文:《7 Ways To Make Software Developers Happy》作者:Semi Koen
    原文链接:https://towardsdatascience.com/7-ways-to-make-software-developers-happy-d4b72c07584e
    推荐理由:如果你手下有不少队员

    7 Ways To Make Software Developers Happy

    What makes software developers happy? There is no silver bullet that answers this million-dollar question! Retaining top talent in this fast pacing world is imperative! When sleep pods, ping-pong tables, personal chefs and other fancy perks do not do the trick, we really need to think hard on how to please them and promote their engagement and motivation.

    In this article, I will cover the drivers that have mostly contributed to my (work) happiness in my fifteen-year I.T. journey, as well as the ramifications and suggestions on issues I faced, so if you are a team lead, manager, or entrepreneur, it might give you some ideas on how to keep your team content and committed!

    ❶ — Use the best gear money can buy

    This is definitely number 1 in my list. There is nothing more frustrating than opening the project’s code, compiling it, or running a test locally and having to wait more than a few seconds for it to come back. Developers work in haste, so any ineffective tools that delay them, even in the slightest, are a big constraint for their happiness.

    There is a balance between having top-end machines (can be an overkill) and low-end ones (these clearly obliterate performance) but having enough memory, CPU and disk space/speed (SSD, pretty please!) are the three most important factors to preserve not only the developers’ sanity, but also the long-term cost for the company. Multiple monitors and productivity tools are also fundamental to increase their efficiency.

    These small increments of time wasted here and there, may add up to an hour per week (maybe less, but most probably more), but if you consider the total amount of hours spent over a year, per developer, multiplied by the hourly rate, most investments of this sort justify themselves on purely financial grounds.

    So do it… upgrade their machines, get them an extra monitor and provide them with the paid versions of the productivity tools! You would not expect an orchestra to perform with mediocre instruments, why do developers have to use outdated and sluggish computers?

    ❷ — Enable deep focus

    It is anecdotal how software development requires focus.

    Deep, undivided, intense focus.

    Getting in the zone with no interruptions and limited background noise is essential in order to produce elegant code. A small distraction and the train of thought is lost. Unfortunately, the relatively recent trend towards open-plan offices guarantees noise and all these carefully placed ideas in a programmer’s mind are gone. In my experience, the concept that open-plan offices enhance communication is flawed:
    • some people refrain from having discussions at the desk all together, because they know that talking will disturb their colleagues around them
    • some others do not mind being on the phone or hold meetings at the desk, but they generate resentment among their ‘neighbours’. The latter often use noise cancelling headphones which means it is much harder to get their attention even if there is something that might genuinely need their input.
    Programming is art! And for artists, the holy grail of happiness is a state of flow… So to keep the developers happy and boost their productivity, give them a distraction-free place to work or at least put some rules around open-office etiquette!

    ? State of Flow:
    Positive psychologist Mihály Csíkszentmihályi, describes a state of flow as “Being completely involved in an activity for its own sake. Time flies. Every action, movement and thought follows inevitably from the previous one, like playing jazz. Your whole being is involved, and you are using your skills to the utmost”.
    To find out more, please watch this extraordinary TED talk:Flow, the secret to Happiness.

    ❸ — Embrace flexible working hours

    A flexible work setup is a must-have. That includes all the old and new buzzwords like remote working, flexi time, telecommuting, compressed work weeks, digital nomad (too extreme? ?).

    Standard office hours do not fit everyone. Some developers work best at 7am, some others at 7pm and others (the night owls amongst us) at 1am! International talent might be visiting their home countries for a long period of time. Moreover, family commitments (especially childcare), or various lifestyle choices (degree completion, side hustle etc) can preclude several developers from working the expected 9 to 5. However, having a secure VPN connection, real-time collaboration platforms and team messaging applications in their fingertips means that everything can be accomplished at a distance.

    While the benefits on the individual are strongly pronounced, the impact on the company is not always so clear and some ‘brushback’ arguments claim that flexible hours cause unreliable results and stifled teamwork due to less physical presence. The key thing here is to be diligent with task estimation! For example, if an I.T. resource can deliver 10 story points in a two-week sprint, it doesn’t matter when this contribution is made as long as it is completed within the timeframe.

    As a compromise, in order to enhance the team communication, core hours that everyone is online can be agreed (e.g. 11am to 3pm) and beyond that each developer can manage their own time — within reason obviously! For instance, if there is a support task that needs to be completed at a specific shift, it should be adhered to.

    ❹ — It’s a burn-down, not a burn-out!

    Projects have deadlines — and sprint goals spill over! This is a fact! And although the delivery manager is on top of the planning and the looming milestones, sometimes there is no way around the fact that everyone in the team has to put long hours to get things done and release the new feature to production. Within reason, this is okay and all the devs that work in commercial projects expect this to happen once in a while.

    Not withstanding that this rhythm is not sustainable, some managers get used to the increased output and the faster delivery pace and they take it for granted in future sprints by overcommitting to unrealistic goals. What is more, the team starts burning out, which not only has significant effect on their health, but also causes resentment and job dissatisfaction.
    “Give an inch and they will take a mile”
    As a leader to keep the team’s morale high you need to respect their work-life balance. If you ask your devs to burn the midnight oil working overtime to meet a tight deadline, please make sure you are not being this demanding consistently.

    ? Autonomy – Mastery – Purpose:
    I recently read Daniel Pink’s new book: ‘Drive: The Surprising Truth About What Motivates Us’.
    It made me realise that motivation is directly affecting our work-happiness. Small wonder then, that the following ‘happiness’ factors (5, 6, 7) match Pink’s motivation trifecta.
    To find out more, please watch another fabulous TED talk:The puzzle of motivation.

    ❺ — Empower

    Autonomy at work is a really important aspect for me and the more my career was growing the less willing I was to compromise on having a degree of freedom to complete my tasks or be able make decisions. Like me, most of the developers enjoy forming opinions and having independence to call the shots.

    So express confidence in your team’s capacity to make decisions: involve them in the estimation process, ask them to propose solutions, consult them when a choice is to be made. You will be surprised that they tend to meet the timelines they have set for themselves, the solutions are creative (they are known for their problem solving skills after all) and also the suggestions are very well thought after. It is also important not to micromanage them — this is a spirit killer!

    There needs to be a balance between autonomy and structure. So instead of telling your team how to do their job, just set the strategy and give them a framework within which they can make their own choices. For example, set the goals, deadlines and benchmarks and then allow them to define how they will accomplish the goals. This leaves you to focus on the big-picture and the managerial high-level ‘stuff’ and gives the developers the autonomy to design their own tasks.

    It is a win-win situation!
    All it takes is a belief that people are fundamentally good — and enough courage to treat your people like owners instead of machines. Machines do their jobs; owners do whatever is needed to make their companies and teams successful. — Laszlo Bock

    ❻ — Promote Continuous Learning

    If you have been following my articles, you know my views on the importance of continuous learning, and developers understand it too! Playing off the concept of mastery, software engineers love new technologies and keeping abreast of modern ideas. New tools, frameworks and paradigms are constantly established, but some managers refrain from letting them try new things and fear any change of the existing status quo. This can lead to a stagnant culture where developers lose their spark of curiosity. As a result, the codebases become really difficult to maintain, ugly to read and expensive to support. Eventually, your top talent will leave and you will have trouble finding anyone who is willing to work on obsolete brownfield projects.

    As such any investment on your team’s learning is money well spent! Do send them to conferences and courses, buy books, get them a subscription to learning resources, you name it!

    Furthermore, it is a good idea to give your dev team time and space to skill up before any new project starts. A proof of concept in a new technology can save a lot of time and money in the organisation and the modernisation of the software ecosystem has become a pre-requisite these days. Another easy way to excite the developers is to encourage them to build DevOps tools using languages, databases or frameworks that differ from your normal stack.

    Finally, you should not underestimate the importance of task-shifting. Repeating the same work over and over again is boring and developers feel like they do not improve their skills. If you let the task rotate within your team even if it takes longer at the beginning, it mitigates that constant pain-point. Being on L3 Support (that dreadful S-word!) is a good candidate for rotation.

    ❼ — Instil a sense of purpose

    There is no greater feeling than when you realise your work makes a difference. Small or big — it doesn’t matter! It can be small quick wins: e.g. create a new tool which automates the regression testing, or increase the testing coverage, or improve the performance of a long running process. Or it can be big achievements: new released feature gives the business a capital gain of a few million dollars. Either way, do not forget to celebrate your successes. Be specific too! A praised developer is a happy developer!

    Programming is a labour of love! A strong correlation between purpose and craftsmanship is the developers’ tendency towards perfectionism and pride for the end product. As their manager, you need to respect this behaviour and give them time to write unit and BDD (Behaviour Driven Development) tests and also allocate some extra time for refactoring and code optimisation. This perfectionism trait highlights the developers’ sense of ownership and recognising their efforts will only make it stronger!
    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/
  • 开源日报第648期:《文字识别 tesseract.js》

    23 12 月, 2019
    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《文字识别 tesseract.js》
    今日推荐英文原文:《Do You Know How to Solve These Programming Problems?》

    今日推荐开源项目:《文字识别 tesseract.js》传送门:GitHub链接
    推荐理由:OCR——Optical Character Recognition,即光学字符识别,简单地说就是获取特定图片上的文字的过程。这个项目是纯 JS 实现的各种语言的 OCR,除了常用的中英文以外提供了相当多语言的支持以防患于未然,即使抛开不常用的语言不提,这个项目的功能依然足够日常使用,通过项目提供的各种示例可以轻松上手。

    今日推荐英文原文:《Do You Know How to Solve These Programming Problems?》作者:Daan
    原文链接:https://medium.com/better-programming/do-you-know-how-to-solve-these-programming-problems-18d04defc05e
    推荐理由:一些算法小题目

    Do You Know How to Solve These Programming Problems?

    Can you wrap your head around all of them?

    Programming is about solving problems. In this piece, I’ve listed six programming problems from several sites that contain programming problems. The problems in this listed are sorted based on how difficult they are to solve — with number one on this list being the easiest, and number six being the most difficult to solve. Can you wrap your head around all of them? I provided the solutions to these programming problems, coded in PHP, at the bottom of this article. You can choose a programming language of your choice to solve these problems. Good luck solving these problems, and happy coding! Challenges

    1. Plus Minus

    Let’s start with a relatively easy problem provided by HackerRank. This challenge is categorized as a warmup.

    2. Two Sum

    A challenge that’s considered easy, provided by LeetCode.

    3. Largest palindrome product

    This problem is provided by Project Euler and is considered one of the more easy problems. It’s currently solved by more than 455,000 people.

    4. Distinct powers

    Another challenge from Project Euler. This one is a little bit harder than the previous problem. It’s solved by around 100,000 people.

    5. Kaprekars Constant

    If you’ve made it up to this point: Congratulations! It’s time to start the first hard challenge. This challenge is provided by Coderbyte.

    6. Swap Nodes in Pairs

    Definitely the toughest challenge so far, this challenge is provided by LeetCode. Although it’s considered to be of medium difficulty, I found this one harder to solve than the Kaprekars Constant. This one requires you to know how linked lists work.

    Solutions

    1. Plus Minus

    A really great problem to get you started with a solution that’s really straightforward.
    <?php
    function getFractionals($numbers) {
     $length = count($numbers);
     $results = [
      'positive' => 0,
      'negative' => 0,
      'zero' => 0,
     ];
    
     for ($i = 0; $i < $length; $i++) {
      if ($numbers[$i] < 0) {
       $results['negative'] += 1; 
      } else if ($numbers[$i] > 0) {
       $results['positive'] += 1; 
      } else {
       $results['zero'] += 1; 
      }
     }
    
     return [
      $results['positive'] / $length,
      $results['negative'] / $length,
      $results['zero'] / $length  
     ];
    }
    print_r(getFractionals([1, 1, 0, -1, -1])); // [0.4, 0.4, 0.2]
    print_r(getFractionals([-4, 3, -9, 0, 4, 1])); // [0.5, 0.3333, 0.16667]
    

    2. Two Sum

    Although this one’s a little bit harder than the first problem, you shouldn’t have too much trouble solving this one. I used a simple brute-force approach.
    <?php
    function twoSum($numbers, $target) {
      for ($i = 0; $i < count($numbers); $i++) {
        for ($j = $i + 1; $j < count($numbers); $j++) {
          if ($numbers[$j] + $numbers[$i] === $target) {
            return [$i, $j];
          }
        }
      }
    }
    print_r(twoSum([2, 7, 11, 15], 9)); // [0, 1]
    print_r(twoSum([2, 7, 11, 15], 17)); // [0, 3]
    

    3. Largest palindrome product

    The solution I came up with has the advantage it can be used to find the biggest palindrome that’s the product of any two x-digit numbers. I’ve also added stop conditions to avoid unnecessary extra looping.
    <?php
    function isPalindrome($number) {
      return (string) $number === strrev((string) $number);
    }function getBiggestPalindrome($digits) {
      $start = pow(10, $digits) - 1;
      $max = 0;for ($i = $start; $i > 0; $i--) {
        if ($i * $start <= $max) {
          break;  
        }for ($j = $start; $j > 0; $j--) {
          $product = $i * $j;if ($product < $max) {
            break;  
          }if ($product > $max && isPalindrome($product)) {
            $max = $product;
          }
        }
      }return $max;
    }
    echo getBiggestPalindrome(2); // 9009
    echo getBiggestPalindrome(3); // 906609, which is 993 * 913
    

    4. Distinct powers

    I solved the distinct powers problem by going the brute-force route. Add each result to the array, and then remove duplicates from the array. The last step is to sort the array.
    <?php
    function distinctPowers($min, $max) {
     $numbers = [];
    
     for ($i = $min; $i <= $max; $i++) {
      for ($j = $min; $j <= $max; $j++) {  
       $numbers[] = pow($i, $j);
      }
     }
    
     $unique_numbers = array_unique($numbers);
     sort($unique_numbers);
    
     return $unique_numbers;
    }
    echo print_r(distinctPowers(2, 5), 1); // [4, 8, 9, 16, 25, 27, 32, 64, 81, 125, 243, 256, 625, 1024, 3125]
    echo print_r(count(distinctPowers(2, 100)), 1); // 9183 distinct terms
    

    5. Kaprekars Constant

    The Kaprekars Constant problem is a little bit harder to solve. It’s the first problem in this list that requires recursion to solve the problem.
    function KaprekarsConstant($number, $numberOfIterations = 1) {
      $number = (string) $number;
    
      if (strlen($number) < 4) {
        for ($i = strlen($number); $i < 4; $i++) {
          $number .= '0';
        }
      }
    
      $asc = str_split($number);
      $desc = $asc;
    
      rsort($desc);
      sort($asc);
    
      $asc_number = (int) implode($asc, '');
      $desc_number = (int) implode($desc, '');
      $difference = abs($asc_number - $desc_number);
    
      if ($difference !== 6174) {
        return KaprekarsConstant($difference, $numberOfIterations + 1);
      }
    
      return $numberOfIterations; 
    }
    echo KaprekarsConstant(2111); // 5
    echo KaprekarsConstant(9831); // 7
    
    A screenshot of passing all test cases

    6. Swap Nodes in Pairs

    This one took me a while to figure out. The trick in my solution is to pass variables by reference instead of by value. Still, this one might take some time to get your head around.
    function swapPairs($head) {
        $current = &$head;
    
        while (!is_null($current->next)) {
            $nextValue = $current->next->val;
    
            $temp = &$current;
            $temp->next->val = $temp->val;
            $temp->val = $nextValue;
    
            $current = &$current->next->next;
        }
    
        return $head;
    }
    

    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/
  • 开源日报第647期:《命令行游戏 wolfentext3d》

    22 12 月, 2019
    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《命令行游戏 wolfentext3d》
    今日推荐英文原文:《The Toils of Software Development》

    今日推荐开源项目:《命令行游戏 wolfentext3d》传送门:GitHub链接
    推荐理由:图形学里早就讲过图像是由像素堆起来的,那么命令行里自然也有办法实现图像。这个项目用 Ruby 在命令行里不仅画出了图像,还做出了有模有样的 3D 游戏,当然了这些像素都是用符号一个个堆起来的,看起来相当的晃眼……但是尽管形不似,神似还是成功的做到了。

    今日推荐英文原文:《The Toils of Software Development》作者:Bob Roebling
    原文链接:https://medium.com/better-programming/the-toils-of-software-development-23b8989e70f4
    推荐理由:来看看软件开发的另一面

    The Toils of Software Development

    Hi, I’m Bob, and I write bad code

    At different points in your software development career, you will experience at least one, if not all, of the problems listed here. My goal is to inform you of things that could discourage you from becoming a developer, before you reach them. This will prepare you to handle them, using a plan you’ve devised with a clear mind. Why? Because development is hard and it will take persistence to get better.

    Failure

    The first truth of programming is that you will fail. I do all the time. The compiler (or interpreter) is good at reminding me of my failure rate. What it is not so good at is telling me “Good job!” when I fix those pesky bugs — I have to do that myself. Learn to appreciate the failures, small and large. Look at failed compiles and program crashes as learning experiences that make you better at what you do. If you want to be the sharpest tool in the shed, you have to find and remove the burrs!

    Impatience

    You will lose patience at some point. This is especially likely when you hit a tedious part of the code. The first time I realized this was when I tried building a prestige tracker for a well known first-person shooter. After entering several level point requirements by hand, I got frustrated because writing the software was slow and tedious. Later I would take this impatience and use it to my benefit by finding better ways to do things (e.g. parsing JSON from Web APIs). While it’s great using a wheel someone else built, sometimes you have to do the tedious part yourself. Be sure that when you do, you write it in a way that’s reusable. Your future self will thank you. Photo by Christian Erfurt on Unsplash

    Fatigue

    Mental fatigue is my worst enemy, probably more than any other toil of development. When you face fatigue, it’s hard to get started on new projects or complete existing projects because of the technical debt you’ve created for yourself that you now need to fix. This kind of fatigue also comes about from working on many different projects, working in many different languages on the same project, or just working on a project in a language you don’t know. You overwork your thinking cap, and development slows to almost a grinding halt. The best way to take care of fatigue is to do something else not related to development, better yet, computers period. Go outside and walk around the building for 15 minutes with someone else. It helps keep you distracted for a while and, if they are a developer, you can bounce ideas off of each other about how to solve an issue one of you might have. When I’m at home, I might fire up a game I don’t have to think too hard about and play for about 30 minutes.

    Imposter Syndrome

    Imposter syndrome is a mental game that comes around when you get your first job as a developer. Most of the time, when we think of developers, we think of the computer scientists (Turing, Richie, Torvalds, Gates, Wozniak) who have had tremendous accomplishments. Because of this, we can feel like we don’t belong with the rest of the developers. The best solution for this is to learn something new every day. If something seems complex, there’s a good chance you’re missing the required information — a pre-requisite topic. After a while, things will start making sense and you will go from feeling like an imposter to feeling like a developer. It’s vital that during this stage, you take yourself too seriously. Don’t let others get to you and take all criticism as an opportunity for improvement. Photo by Lysander Yuen on Unsplash

    Analysis Paralysis

    Analysis paralysis is fun to say but it can be a real pain. Have you ever refactored your code before you even committed it to a branch? What about refactoring your code before you write it? This in itself is normal, but have you ever spent more than a workday doing this? If so, you may have experienced analysis paralysis. There’s only one way to get past this: Get it working, even if it is missing features or may not work as efficiently as you’d hoped. Make all of those thoughts tomorrow’s food and move forward with what you have.

    Educational Boundaries

    A manager and friend once told me that they had an employee once who, no matter how many times they were taught something, never could quite figure it out. He said that they had reached their aptitude. I think this is partially true and is qualified by not fully understanding the prerequisite knowledge required for a task. Programming never came easy to me. But with perseverance, I was able to break through what I thought were aptitude caps by learning other things. If you’ve gone far enough in your education to run into some of these other issues, an aptitude cap is not your problem. If you run into any of these issues, remember you’re not the only one to fall into these traps and there’s always a way out. Good luck!
    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/
←上一页
1 … 96 97 98 99 100 … 262
下一页→

Proudly powered by WordPress