Medium – a place to read and write big ideas and important stories
From Medium:
-
How to escape tutorial purgatory as a new developer — or at any time in your career.
文中的观点不要一直都在教程中转悠,那会让你在舒适区浪费很多时间却收效甚微。你需要从项目中去学习,你有可能面对没有说明没有问题不知道从何入手的窘境,这时可以从你所知道的开始,从熟悉的到不熟悉的,也不要吝啬你的问题多去主动寻求解决方法,可以Google搜索或是在Stack Overflow找到需要的答案。你永远不会知道如何做所有事情,也不可能让你了解项目所有知识点后才开始项目,总是需要主动去寻求问题的解决方法。 -
What I’ve Learned from a year of coding
作者讲述了自己在一年的编程学习中收获了什么。如果你在一天之内看到你的编程能力提高了1%,那么在72天后,你可以获得两倍的提升。作者进一步介绍了他是在哪学习,是如何学习,以及提供了一些其他有用的资源。不过可惜的是主要是关于 HTML, CSS, and JS这些前端相关语言。 -
What is a RESTful API?
REST不是HTTP 不是协议不是规范,它是一种风格一种架构。REST就是Representational State Transfer直接翻译:表现层状态转移。出自于Roy Fielding的毕业论文。当API在任何时候都在REST约束下运行时,它是RESTful。REST定义了6个约束来实现所需的系统优化:
1. Client-Server 客户端 - 服务器分离:这种约束是基于关注点分离原则。这允许组件独立发展。
2. Stateless 无状态:客户端和服务器之间的通信必须是无状态的。意味着从客户端到服务器的每个请求都必须包含完成事务所需的所有信息。
3. Cache 缓存:最有效的网络请求是不使用网络的请求。当我们构建API时,它不能忽略缓存。服务器返回信息必须被标记是否可以缓存,如果缓存,客户端可能会重用之前的信息发送请求。
4. Uniform Interface 统一接口:为了在网络中实现高效的缓存,组件必须能够通过统一的接口进行通信。通过统一的接口,有效载荷可以以标准形式传输。ESTful风格的数据元操CRUD(create,read,update,delete)分别对应HTTP方法:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源,这样就统一了数据操作的接口。
5. Layered System 分层系统:在分层系统中,可以使用Web的统一接口在客户端和服务器之间放置代理等中介。系统组件不需要知道与他交流组件之外的事情。封装服务,引入中间层。
6. Code On Demand 按需代码 -
10 Bad Habits of Unsuccessful People
如果成功是容易的,那我们就不会苦寻通往成功的方法。对于大多数人,我们或许没有什么成功的经验之谈,但那些阻碍实现目标的习惯,我们或多或少都会有所体会。文章作者列举了10个最常见的坏习惯,那些会阻碍你实现目标,如果你发现自己碰到了一个那么就需要好好反思并改变它。
Bad Habits | 坏习惯 |
---|---|
1. Always being distracted | 1.总是分心 |
2. Only talking the talk | 2.只是说说(不实际行动) |
3. Spending time with the wrong people | 3.花时间与错误的人在一起 |
4. Always focusing on the negative | 4.总是关注负面因素 |
5. Procrastinating | 5.拖延 |
6. Not listening to others | 6.不倾听他人 |
7. Giving in to laziness | 7.屈服于懒惰 |
8. Not being curious | 8.缺乏好奇心 |
9. Not being nice | 9.不做好人 |
10. Giving up | 10.轻言放弃 |
-
Learning Python: From Zero to Hero
文章简单介绍了python的基础知识,对于零基础可以算不错的入门,对于有经验者帮助你回顾你可能轻视的各种python基础内容
文中关于Python基础知识包括:Python变量的工作原理、Python条件语句如何工作、Python循环(while&for)如何工作、如何使用列表:集合|数组、字典键值集合、我们如何迭代这些数据结构、对象和类、属性作为对象的数据、方法作为对象的行为、使用Python getter和setter以及属性装饰器、封装:隐藏信息、继承:行为和特征
我真的是一个软件工程师吗?
作者结合自身的经历讲述了自己开始自学编程做出项目,到找到工作却在这个过程中不断遭受“不是一个真正的软件工程师”的质疑,最后通过不断寻求最终找到了自己想要的答案,继续从事编程的故事。
什么才是一个真正定义上的软件工程师呢?能独立做项目?能找到一份软件工程师的工作?还是有需要有软件工程相关的学位证书?学会各种高大上的技术,并从事这个行业几十年?
这些问题重要吗?对于你编程能力的提高,这些并没有多大的意义。在你从一个菜鸟成长为大牛,在你不断攻克一个个技术难关的过程,你会犯错,你会遇到很多的质疑,甚至更多的是你对自己能力的质疑。回应这些质疑就是将各种负面的情绪想法转化为你更为努力的动力,努力的学习你工作中所缺乏的知识,收获知识获得成长,这才是面对问题的正确态度。
保持长久持续学习的观念,不要轻易给自己设限,你能够做得更好走得更远成长地更高。
Programming is a basic human skill, just like reading, writing and arithmetic. Anyone can learn to program with time and effort.
文中列举了以下列表帮助您了解您是否会厌倦编程 - 以及如果您想要改变,您可以采取哪些措施。
表象: | 措施: |
---|---|
1 Lack of curiosity(缺乏好奇心) | Find Your Curiosity(找到你的好奇心) |
2 Lack of autonomy and resourcefulness(缺乏自主性和智慧) | Use the Resources(利用资源) |
3 Lack of persistence in the face of a problem(面对问题时缺乏坚持) | Patient Acceptance(耐心接受) |
4 No feeling of success in overcoming a problem(克服问题没有成功的感觉) | Celebrate Your Wins(庆祝你的胜利) |
5 Impatient about learning and understanding(对学习和理解不耐烦) | Acknowledge Your Progress (承认你的进步) |
6 Getting bored/tired from thinking(厌倦思考) | Your Mind is a Muscle(你的头脑是肌肉)ps 经常使用 |
7 Inability to think for yourself(无法自己思考) | Think for yourself(自己思考) |
8 Rigid, narrow and/or disorganized thinking(僵硬,狭隘和/或无组织的思维) | Self Reflection(自我反思) |
9 Needing the “right” answer instead of recognizing a spectrum of “good” and “bad” answers(需要“正确”的答案,而不是辨别一系列“好”和“坏”的答案) | Get Creative(具有创造性) |
10 Not paying careful attention to details(不仔细注意细节) | Pay Attention to the Details(注意细节) |
虽然编程可能是一项难以学习的技能,但它肯定是大多数人可以学习的技能。上面的列表包含阻碍他们的态度和心态,但大多数人都可以克服它们并培养编程领域的能力。
刚刚开始编码生涯的时候总会问自己类似于这样的问题:我应该学习什么,我应该从哪里开始?作为一名程序员,我应该知道什么才能获得第一份工作?最明智的方法是假设回答「被一家科技公司雇为程序员我该知道些什么?」来找出成功通过技术面试所应掌握的主要技能。
作者分别介绍了三大不同的平台Web、Desktop 、Mobile中会涉及的技能和知识。
对于准备编码面试,作者从
1、Algorithms & Data Structures (算法和数据结构)
2、Computer Organization & Operating Systems(计算机组织和操作系统)
3、Coding(编码)
4、System Design(系统设计)
这4方面做了比较详细的说明和介绍,这4大方面也在黑暗的编程森林给你指明方向
-
The SQL vs NoSQL Difference: MySQL vs MongoDB
介绍了什么是SQL什么是NoSQL,从可扩展性和结构两方面比较了SQL和NoSQL。并具体介绍比较了SQL代表MySQL 的好处和优势 以及 NOSQL代表MongoDB的好处和优势。就哪个数据库适合您的业务给出了建议 -
An A-Z of useful Python tricks
这篇文章对python使用者有很大的启迪和帮助,作者在文中介绍了26类(按字母A到Z排列)实用的Python技巧,推荐收藏并根据作者在文中扩展的进一步了解。 -
What exactly can you do with Python? Here are Python’s 3 main applications.
作者在文中介绍了python的3个主要应用方向:Web开发、数据科学(包括 机器学习,数据分析以及数据可视化)、脚本。
Web开发: 作者说明了我们为什么需要web框架,对比了基于python的web框架Django 和 Flask,推荐了文章 Flask vs. Django: Why Flask Might Be Better
数据科学: 首先回顾了什么是机器学习,介绍了python流行的机器学习库和框架,并给出了如何学习机器学习的建议。接着介绍了数据分析和数据可视化,以及实用的python库
脚本: 作者简单介绍了下什么是脚本 -
Learn the fundamentals of a good developer mindset in 15 minutes
作者在文章中介绍了自己25个关于良好开发人员思维方式的基础知识的要点,了解并遵循这些要点会让你减少很多软件开发中烦恼并避免开发很多人员都经常犯的错。 -
A Smart Programmer Understands The Problems Worth Fixing
作者以Peter解决订单系统的故事引出自己的观点,聪明的程序员不是解决所有问题的人,而是理解值得解决的问题的人。 -
SOLID Principles every Developer Should Know
每个开发人员都应知道的 SOLID 原则。作者通过简单代码示例,介绍了SLOID原则。面向对象的编程并不能防止难以理解或不可维护的程序。因此,Robert C. Martin 制定了五项指导原则,使开发人员很容易创建出可读性强且可维护的程序。这五项原则被称为 S.O.L.I.D 原则(这种缩写是由 Michael Feathers 提出的):S: Single Responsibility Principle(单一责任原则) O: Open-Closed Principle(开闭原则)L: Liskov Substitution Principle(里式替换原则)I: Interface Segregation Principle(接口隔离原则)D: Dependency Inversion Principle(依赖倒置原则)
https://www.jianshu.com/p/d3080383451f -
What I learned from doing 1000 code reviews
作者根据工作经验给出了3+1项代码审查建议,建议1:出现问题时抛出异常 不要试图返回一个空对象或者其他东西。 建议2:尽可能使用最具体的类型 这会让你避免一堆bug也是选择强类型语言的基本原因。 建议3:使用Optionals而不是nulls Optional类代表可合理存在或不存在的实体,允许您从程序中完全避免空指针异常(NPE),但是你得正确使用它。 额外建议:尽可能使用“非提升”(Unlift)方法 -
How to Become a Better Software Developer
如何成为更好的软件开发人员,作者从多个方面提出了自己的意见。软件开发不只与编码有关,需要理解软件端到端的开发全过程,需要了解客户的真实需求,为工作选择合适的工具和流程,需要进行安全试验,可以站在巨人的肩上开发,可以通过重新实现来学习,研究你的工作方式并改进提高它,消除开发中的不利因素,专注于基础知识,要懂得分享知识,出现问题不要责怪自己或他人要专注于导致问题的事情,弄清楚它为什么会发生,不要成为令人讨厌的混蛋 -
All you need to know about “Big O Notation” to crack your next coding interview
作者以排序算法引出Big O的作用,用于衡量算法的效率。并给出了常用排序算法在最佳 平均 最坏情况的 Big O表格。研究Big O让我们关注程序的效率,在大的数据面前一点算法效率的提升,会很明显体现出来 -
Which Programming Language Should You Learn Next?
作者首先简介了2017到2018编程语言的趋势,然后对初学者,中级以及专家级开发人员推荐了相应的编程语言学习,当然学习的编程语言也要尊重你的职业兴趣与愿望。 -
Cookies vs. LocalStorage: What’s the difference?
介绍了Cookies 和LocalStorage是什么,以及异同点 -
The top data structures you should know for your next coding interview
介绍了面试中常常遇到的数据结构,并罗列了一些面试问题。建议自己也回答下,如果答不上来 google -
Goodbye, Object Oriented Programming
作者是一个使用面向对象编程几十年的超级老鸟=_=,罗列了他所遇到的属于面向对象编程三大支柱的相关问题,吐槽了其背后的坑。前人踩了坑,我们踩着他就行了,在我们进行面向对象编程时随时注意
https://www.jianshu.com/p/de374f075d80
知乎个人首页:
https://www.zhihu.com/people/lichangke/
个人Blog:
https://lichangke.github.io/
欢迎大家来一起交流学习