大学不会教,但是程序员第一天工作需要知道的事儿

异步社区 2019-02-22

编程语言 linux python 深度学习 算法 程序员 SQL spring 持续交付 git 编程 前端开发 数据结构

?wx_fmt=gif


作为程序员,要学习很多重要的主题。算法,数据结构,编程语言,数不胜数。在我们开始编程之前,先了解一下现状。 Go现在正趋势化,Python是2018年最流行的语言之一,30亿个设备运行Java(显然是90年代以来)。但是当你不知道它的用途时,很难选择一种语言。

今天的文章是关于学校老师没有教授的工具和技能,当你获得第一份工作时会产生巨大的变化。无论您最终成为Web开发人员还是数据科学家,您都可以应用这些内容。当然,文章最后小编会奉献一份开学季经典书单。

Git

Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。无论您是哪种开发人员或使用何种语言,您几乎每天都会使用它。

Git是源控制管理器或简称SCM。换句话说,它允许您使用不同版本的代码。 Git提供的工具可以让同一项目中的许多人一起工作,减少协作痛苦。

如果你自己做一个项目,那么使用Git是个好主意,原因有很多。显而易见的是,您可以免费将代码存储在云中。许多公司提供免费的公共存储库,例如Github,Gitlab和Bitbucket。但是如果你在一个团队中工作,那么你迟早会使用Git,所以最好先学习它。

沟通能力

一种被低估的软技能就是沟通。我们的开发人员如此专注于工作的技术方面,我们常常忘记要实现伟大的事情,我们必须与其他人合作。

在谈论沟通时,有许多要点需要改进。我想对开发人员来说,最重要的一个是如何正确描述问题。你最终会向某人寻求帮助,并且在获得实际帮助时,你需要首先描述什么是错的。

你的同事可能和你一样忙,也许他们的头脑中有很多事情要发生。不要向人们提出类似炸弹的问题,而是在寻求帮助之前给出背景信息。

让我来证明:

不要这样做

嘿$coworker,当我运行$ command时,$service没有按预期工作,你能帮我个忙吗?

INSTEAD,做这个

嘿 $同事,怎么了?我需要一些建议。由于$ reason,我现在正在使用$ service。它应该做$行为来实现$ goal但是它正在做$wrong_behavior。我阅读了文档,但我找不到问题。既然你对这个话题比较熟悉,那么当你有空时,你可以帮我一把吗?咖啡包在我身上。

同事并不总是熟悉您正在使用的主题。通常情况下,正在处理与您的具体问题无关的事情。通过友好并在提出问题之前提供上下文,您会发现对话运行得更顺畅。你也可以更快地解决你的问题。

为了改善这一点,请在遇到问题时与自己交谈。尝试尽可能多地描述手头的情况。不知不觉中,当你将来与别人交谈时,你也会这样做。

写作能力

编写代码很容易。如果您的代码不能正常工作,机器会告诉您。为人写作是真正的挑战。

当你开始努力发现写作是你工作的一个重要部分时,不需要很长时间,我认为和编程一样重要。您需要它来记录代码中的更改,向同事发送电子邮件,定义技术要求,甚至使用注释描述代码的工作方式。

写作是关于将你的思想和情感转化为文字。当你写一些东西时,你需要考虑你正在使用的主题,读者和频道。

如果你正在与一位开发人员交谈,那么提高技术水平是可以的。当您解释系统如何对营销团队起作用时,回调和API等词语可能没有任何意义。您会发现,在发送消息时,您的说法通常比您说的更重要。

这也扩展到了口头交流,但写作要困难得多,因为当你为大量观众写作而不是一对一的对话时,你只有一次机会正确发送信息。如果有人一开始没有明白你的意思,他们就没有机会在同一时刻问你。

在编写代码文档和文章(如本文)时,这一点尤其重要。尽可能清楚地了解与您合作的观众,这一点非常重要。

为了提高你的写作技巧,我的建议是尽可能多地写下你认识和喜爱的东西,并阅读很多东西。例如,每天总是花些时间阅读新技术。你不仅可以提高你的写作水平,还可以学到很多新东西。

这是一篇关于这个主题的精彩文章。

总结

开发人员通常认为他们的工作是关于计算机的,而且这是错误的。开发人员的工作是关于人,计算机只是我们的工具。您创建的解决方案可以让人们的生活更轻松,更好,这需要大量的同理心。

如果你问我作为初级开发人员学习最重要的技能,我会说你应该学习如何在一个小组中工作。本文中的所有技能都有助于实现这一目标。

您可能会在几年内改变您的专业领域。您可能会放弃管理职位的编程,但您将与人合作直到您死亡。作为团队成员,雇主比成为摇滚明星开发者更受欢迎。

你第一次开始工作时希望有什么技能?

本文来源于:asya f,转载请与与原作者联系。



技能书单




?wx_fmt=gif


 

向下滑动预览本期书单


1  软技能

 软技能 代码之外的生存指南

 Git版本控制管理(第2版)

 Git学习指南

2 职业素养

 代码整洁之道 程序员的职业素养

 重构 改善代码既有的设计

 编程珠玑(第2版·修订版)

 代码整洁之道

3.一个语言一本经典书

 C Primer Plus 第6版 中文版

 C++Primer Plus(第6版)中文版

 Python神经网络编程

 CSS世界

 数据结构 python语言描述

 深度学习

 Python编程快速上手让繁琐工作自动化

 Python核心编程第3版

 Linux就该这么学

 SQL入门经典(第5版)

4 畅销新书

 Python编程无师自通专业程序员的养成  

 算法详解卷1 算法基础

 奔跑吧Linux内核 入门篇 


软技能

 

01


?wx_fmt=png

《软技能:代码之外的生存指南》

作者:【美】John Z. Sonmez(约翰 Z. 森梅兹)


?wx_fmt=png

扫描二维码,一键购买

这是一本真正从“人”(而非技术也非管理)的角度关注软件开发人员自身发展的书。书中论述的内容既涉及生活习惯,又包括思维方式,凸显技术中“人”的因素,全面讲解软件行业从业人员所需知道的所有“软技能”。

本书聚焦于软件开发人员生活的方方面面,从揭秘面试的流程到精耕细作出一份杀手级简历,从创建大受欢迎的博客到打造你,从提高自己工作效率到与如何与“拖延症”做斗争,甚到包括如何投资不动产,如何关注自己的健康。

本书共分为职业篇、自我营销篇、学习篇、生产力篇、理财篇、健身篇、精神篇等七篇,概括了软件行业从业人员所需的“软技能”。通过阅读本书,软件工程人员、编程人员和其他技术人员能够积极思考自己的职业生涯,丰富自己的生活,让自己更接近成功。

02


?wx_fmt=png

《Git版本控制管理(第2版)》

作者:【美】Jon Loeliger , Matthew McCullough


?wx_fmt=png

扫描二维码,一键购买

Git是一 款免费、开源的分布式版本控制系统,**早由LinilusTorvalds创建,用于管理Linux内核开发,现已成为分布式版本控制的主流工具。

《Git版本控制管理(第 2版)》是学习掌握Git的**佳教程,总共分为21章,其内容涵盖了如何在多种真实开发环境中使用Git;洞察Git的常用案例、初始任务和基本功能;如何在集中和分布式版本控制中使用Git;使用Git管理合并、冲突、补丁和差异;获得诸如重新定义变基(rebasing)、钩子(hook)以及处理子模块(子项目)等的高 级技巧;Git如何与SVN版本库交互(包括SVN向Git的转换);通过GitHub导航、使用开源项目,并对开源项目做贡献。

《Git版本控制管理(第 2版)》适合需要进行版本控制的开发团队成员阅读,对Git感兴趣的开发人员也可以从中获益

03


?wx_fmt=png

《Git学习指南》

作者:【德】René Preißel(普莱贝尔), Bjørn Stachmann(斯拉赫曼)


?wx_fmt=png

扫描二维码,一键购买

Git是一 款免费、开源的分布式版本控制系统,也是当今流行的版本控制系统之一,在众多的项目开发中普遍使用,得到程序员和工程师的欢迎和喜爱。

本书是一本面向专业开发 者的图书。全书内容分为26章,从基础概念讲起,陆续向读者介绍了有关Git的各种操作和使用技巧,不仅将提交、版本库、分支、合并等命令讲解到位,还介绍了工作流、基于分支的开发、二分法排错、发行版交付、项目的拆分与合并、项目的迁移等内容。

本书适合从事项目开发的专业人士阅读,想要学习Git的读者也可以选用。


职业素养

 

01


?wx_fmt=png

《代码整洁之道:程序员的职业素养》

作者:【美】Robert C. Martin(罗伯特 C. 马丁


?wx_fmt=png

扫描二维码,一键购买

本书是编程大师“Bob 大叔”40余年编程生涯的心得体会的总结,讲解要成为真正专业的程序员需要具备什么样的态度,需要遵循什么样的原则,需要采取什么样的行动。作者以自己以及身边的同事走过的弯路、犯过的错误为例,意在为后来者引路,助其职业生涯迈上更高台阶

02


?wx_fmt=jpeg

《重构 改善既有代码的设计》

作者:马丁·福勒(Martin Fowler)


?wx_fmt=png

扫描二维码,一键购买

重构,一言以蔽之,就是在不改变外部行为的前提下,有条不紊地改善代码。多年前,正是本书原版的出版,使重构终于从编程高手们的小圈子走出,成为众多普通程序员日常开发工作中不可或缺的一部分。本书也因此成为与《设计模式》齐名的经典著作,被译为中、德、俄、日等众多语言,在世界范围内畅销不衰。

本书凝聚了软件开发社区专家多年摸索而获得的宝贵经验,拥有不因时光流逝而磨灭的价值。今天,无论是重构本身,业界对重构的理解,还是开发工具对重构的支持力度,都与本书出版时不可同日而语,但书中所蕴涵的意味和精华,依然值得反复咀嚼,而且往往能够常读常新。

03


?wx_fmt=png

《编程珠玑(第2版•修订版)》

作者:[美] 科里•奥尔索夫(Cory Althoff)


?wx_fmt=png

扫描二维码,一键购买

《编程珠玑(第 2版·修订版)》是计算机科学方面的经典名著。书的内容围绕程序设计人员面对的一系列实际问题展开。作者JonBentley以其独有的洞察力和创造力,引导读者理解这些问题并学会解决方法,而这些正是程序员实际编程生涯中到关重要的。本书的特色是通过一些精心设计的有趣而又颇具指导意义的程序,对实用程序设计技巧及基本设计原则进行了透彻而睿智的描述,为复杂的编程问题提供了清晰而完备的解决思路。《编程珠玑(第 2版·修订版)》对各个层次的程序员都具有很高的阅读价值。

04


?wx_fmt=png

《代码整洁之道》

作者:【美】Robert C. Martin


?wx_fmt=png

扫描二维码,一键购买

《代码整洁之道》提出一种观念:代码质量与其整洁度成正比。干净的代码,既在质量上较为可靠,也为后期维护、升级奠定了良好基础。作为编程领域的佼佼者,《代码整洁之道》作者给出了一系列行之有效的整洁代码操作实践。这些实践在《代码整洁之道》中体现为一条条规则(或称“启示”),并辅以来自现实项目的正、反两面的范例。只要遵循这些规则,就能编写出干净的代码,从而有效提升代码质量。

《代码整洁之道》阅读对象为一切有志于改善代码质量的程序员及技术经理。书中介绍的规则均来自作者多年的实践经验,涵盖从命名到重构的多个编程方面,虽为一“家”之言,然诚有可资借鉴的价值。


一种语言一本经典

 

01


640?

《C Primer Plus 第6版 中文版》

作者:[美]史蒂芬·普拉达(Stephen Prata)


?wx_fmt=png

扫描二维码,一键购买

畅销30余年的C语言编程入门教程;近百万程序员的C语言编程启蒙教程;技术大牛案头常备的工具书;针对C11标准库更新;蔡学镛 孟岩 高博倾力推荐。

本书是一本经过仔细测试、精心设计的完整C语言教程,它涵盖了C语言编程中的核心内容。作为计算机科学的经典著作,讲解了包含结构化代码和自顶向下设计在内的程序设计原则。

02


?wx_fmt=jpeg

《C++ Primer Plus(第6版)中文版》

作者:【美】Stephen Prata


?wx_fmt=png

扫描二维码,一键购买

一本经久不衰的C++畅销经典教程;首本支持C++11新标准的程序设计图书。它被誉为“开发人员学习C++的必备教程,没有之一”!

本书可以说是一本面向从未学习过C语言甚至是从未学习过编程的人的入门书籍,它的首章从基础内容讲起,先介绍了传统编程的规则,后面才着重讲解有关面向对象——C++的精髓之一——的有关内容。整个书的结构安排较为合理,难度爬升较慢。


03


?wx_fmt=jpeg

《Python神经网络编程》

作者:[英] 塔里克·拉希德(Tariq Rashid)


?wx_fmt=png

扫描二维码,一键购买

本书用轻松的笔触,一步一步揭示了神经网络的数学思想,并介绍如何使用Python编程语言开发神经网络。本书将带领您进行一场妙趣横生却又有条不紊的旅行——从一个非常简单的想法开始,逐步理解神经网络的工作机制。您无需任何超出中学范围的数学知识,并且本书还给出易于理解的微积分简介。

本书为美亚五星畅销书,备受关注。基于Python3.5,全彩印刷,如果只选一本神经网络图书,他是首选。

本书从前端开发人员的需求出发,以“流”为线索,从结构、内容到美化装饰等方面,全面且深入地讲解前端开发人员必须了解和掌握的大量的CSS知识

点。同时,作者结合多年的从业经验,通过大量的实战案例,详尽解析CSS的相关知识与常见问题。作者还为本书开发了专门的配套网站,进行实例展示、问题答疑。

本书是打破能力上升瓶颈之作。前端开发行业潜心近10年一直研究看似简单的CSS的人可谓是凤毛麟角,作者从2009年开始写原创技术文章,现在其博客已经成为国内访问量巨大的个人前端博客之一,可以说众多前端初学者是看着作者的博客成长的。

04


?wx_fmt=png

《CSS世界》

作者:张鑫旭


?wx_fmt=png

扫描二维码,一键购买

本书从前端开发人员的需求出发,以“流”为线索,从结构、内容到美化装饰等方面,全面且深入地讲解前端开发人员必须了解和掌握的大量的CSS知识点。同时,作者结合多年的从业经验,通过大量的实战案例,详尽解析CSS的相关知识与常见问题。作者还为本书开发了专门的配套网站,进行实例展示、问题答疑。

本书是打破能力上升瓶颈之作。前端开发行业潜心近10年一直研究看似简单的CSS的人可谓是凤毛麟角,作者从2009年开始写原创技术文章,现在其博客已经成为国内访问量巨大的个人前端博客之一,可以说众多前端初学者是看着作者的博客成长的。

05


?wx_fmt=png

《数据结构 Python语言描述》

作者:[美] Kenneth A. Lambert 兰伯特等


?wx_fmt=png

扫描二维码,一键购买

不管你是程序设计爱好者、计算机专业的学生还是一位专业程序员,本书都是你通过Python编程语言学习面向对象设计和数据结构的不错的入门教程。通过清晰的示例、按部就班的讲解以及众多实用的练习,本书教你通过Python理解并使用数据结构。

06


640?

《深度学习》

作者:【美】Ian Goodfellow(伊恩·古德费洛)


?wx_fmt=png

扫描二维码,一键购买

AI圣经!深度学习领域奠基性的经典畅销书!长期位居美亚AI和机器学习类图书榜首!所有数据科学家和机器学习从业者的必读图书特斯拉CEO埃隆·马斯克等国内外众多专家推荐!

深度学习是机器学习的一个分支,它能够使计算机通过层次概念来学习经验和理解世界。

07


640?

《Python编程快速上手——让繁琐工作自动化》

作者:【美】Al Sweigart(斯维加特)


?wx_fmt=png

扫描二维码,一键购买

美亚畅销Python 3编程图书,帮助你通过编程快速实现工作自动化 。在本书中,你将学习利用Python 编程,在几分钟内完成手工需要几小时的工作,而事先却无需具备编程经验。一旦掌握了编程的基础知识,你就可以毫不费力地创建Python 程序,完成高效的自动化工作。

08


?wx_fmt=jpeg

《Python核心编程 第3版》

作者:[美]卫斯理 春(Wesley Chun)


?wx_fmt=png

扫描二维码,一键购买

《Python核心编程(第3版)》是经典畅销图书《Python核心编程(第二版)》的全新升级版本,为中级Python开发人员提供实践方法,涵盖大量实用的代码案例,每章末尾的习题有助于巩固所学知识,Python开发人员的案头常备。

本书源自日均阅读量近万次火爆的线上同名课程,口碑与影响力俱佳,旨在打造简单易学且实用性强的轻量级Linux入门教程。

本书基于红帽RHEL系统编写,且内容通用于CentOS、Fedora等系统。本书共分为20章,内容涵盖了部署虚拟环境、安装Linux系统;常用的Linux命令;与文件读写操作有关的技术;使用Vim编辑器编写和修改配置文件;用户身份与文件权限的设置;硬盘设备分区、格式化以及挂载等操作;使用PXE+Kickstart无人值守安装服务;使用LNMP架构部署动态网站环境等。此外,本书还深度点评了红帽RHCSA、RHCE、RHCA认证,方便读者备考。

09


?wx_fmt=png

《Linux就该这么学》

作者:刘遄


?wx_fmt=png

扫描二维码,一键购买

本书源自日均阅读量近万次火爆的线上同名课程,口碑与影响力俱佳,旨在打造简单易学且实用性强的轻量级Linux入门教程。

本书基于红帽RHEL系统编写,且内容通用于CentOS、Fedora等系统。本书共分为20章,内容涵盖了部署虚拟环境、安装Linux系统;常用的Linux命令;与文件读写操作有关的技术;使用Vim编辑器编写和修改配置文件;用户身份与文件权限的设置;硬盘设备分区、格式化以及挂载等操作;使用PXE+Kickstart无人值守安装服务;使用LNMP架构部署动态网站环境等。此外,本书还深度点评了红帽RHCSA、RHCE、RHCA认证,方便读者备考。

10


?wx_fmt=png

SQL入门经典(第5版)》

作者:【美】Ryan Stephens, Ron Plew, Arie D.Jones


?wx_fmt=png

扫描二维码,一键购买


《SQL入门经典(第5版)》的作者都是数据库教学与应用的专家,有着丰富的经验。《SQL入门经典(第5版)》详细介绍了SQL语言的基本语法、基本概念,说明了各种SQL实现与ANSI标准之间的差别。书中包含了大量的范例,直观地说明了如何使用SQL对数据进行处理。每章后面还有针对性很强的测验与练习,能够帮助读者更好地理解和掌握学习的内容。在后的附录里还有关于安装MySQL的详细介绍、书中用到的关键SQL语句、测验和练习的答案。

《SQL入门经典(第5版)》的内容层次清晰,针对性强,非常适合初学者作为入门教材。


畅销新书

 

01


?wx_fmt=png

《Python编程无师自通》

作者:[美] 科里•奥尔索夫(Cory Althoff)


?wx_fmt=png

扫描二维码,一键购买

在美国亚马逊,有一本书的影响力超高的Python入门书,Kindle版本在美国亚马逊网站的计算机软件、软件开发分类中排行均为第一,超越了众多实力派Python书,众多五星好评。也许你有所耳闻,这本书就是《Python编程无师自通——专业程序员的养成》。

02


?wx_fmt=png

《算法详解(卷1)——算法基础》

作者:[美] 科里•奥尔索夫(Cory Althoff)

异步图书后台回复:“算法详解”获取视频


?wx_fmt=png

扫描二维码,一键购买

这本书在美亚评分4.7,在作者的在线算法课程的基础之上编写的,是四卷本系列的第1卷。这个在线课程2012年起就定期更新,它建立在作者在斯坦福大学教授多年的本科课程的基础之上。也许你有所耳闻,这本书就是《算法详解(卷1)——算法基础》。如果你更喜欢听和看,可以在YouTobe上搜索这本书的主题课程,免费观看。

《算法详解(卷1)——算法基础》作者蒂姆·拉夫加登(Tim Roughgarden)是斯坦福大学计算机科学系的教授,也是该校管理科学和工程系的客座教授,他从2004年开始教授和研究算法。本书是他的《算法详解》四部曲的第一卷。

这本书详细讲解算法基础,展现算法本质 ,是一本囊括基本算法知识的详解指南。集斯坦福大学教授多年教学经验,深入浅出,通俗易懂。

03


?wx_fmt=png

《Spring源码深度解析(第2版)》

作者:郝佳


?wx_fmt=png

扫描二维码,一键购买

畅销长销Spring图书全新升级版本 基于Spring 5.x编写庖丁解牛式讲解Spring工作原理 。

本书从核心实现、企业应用和Spring Boot这3个方面,由浅入深、由易到难地对Spring源码展开了系统的讲解,包括Spring 整体架构和环境搭建、容器的基本实现、默认标签的解析、自定义标签的解析、bean的加载、容器的功能扩展、AOP、数据库连接JDBC、整合MyBatis、事务、SpringMVC、远程服务、Spring消息、Spring Boot体系原理等内容。

04


?wx_fmt=jpeg

《持续交付2.0:业务引领的DevOps精要》

作者:乔梁


?wx_fmt=png

扫描二维码,一键购买

经典图书《持续交付》已出版8年,一直受到软件行业从业者的关注。书中的软件开发原则和实践也随着商业环境VUCA特性的明显增强而逐渐受到软件技术人员的认可。这本书得以迅速、优质地在中国出版与译者乔梁密不可分,圈内人都亲切的称乔梁为“乔帮主”。

乔梁是《持续交付》译者,持续交付领域专家,持续交付和DevOps理念在国内的首批实践者和布道者,被业界称为“国内持续交付第一人”。国内最早致力于通过敏捷开发与精益理论改善软件价值交付效率的实践者之一,精研各种软件工程方法论。

8年后乔梁带着他的全新著作《持续交付2.0:业务引领的DevOps精要》面向大众。这本书将《持续交付》一书的思想融会贯通,经过8年的管理实践,精心总结与提炼,提出“持续交付2.0双环模型”;作者独创性地将持续交付理论与当前的技术热点DevOps理念完美结合。

05


?wx_fmt=png

《SQL Server On Linux运维实战》

作者:黄钊吉, 熊章立


?wx_fmt=png

扫描二维码,一键购买

  • SQL Server凤凰涅槃,浴火重生;

  • 跨平台,Linux和Windows平台均适用;

  • 从入门到精通,突出运维监控、性能调优;

  • 融入作者10年工作经历,系统、实用、经常翻阅的工具书。

通过阅读本书,你将会了解到如何使用基于Linux的SQL Server,如何更好地管理在Linux上的SQL Server及如何进行常规的SQL Server性能优化

运行在Linux上的新版SQL Server,将其新特性及强大功能与Linux原生系统的优点进行结合,不仅在运维及性能上带来巨大的便利和提升,同时对大数据和数据挖掘领域的逐步兼容[如内置机器学习、图形处理、兼容HDFS(hadoop分布式文件系统)、Containers(容器)等特性],使得企业不需要从头开始搭建或者把现有环境迁移到“适合”大数据环境的其他关系型数据库中。

?wx_fmt=jpeg

《奔跑吧 Linux内核 入门篇》

作者:张天飞


?wx_fmt=png

扫描二维码,一键购买

  • 原理+基础,从调试Linux内核到动手编写一个简单的内核模块,真正从零开始学习Linux内核。 

  • 实验+案例,70余个创新实验贯穿全书,与你分享业内一线项目经验。 

  • 课件+视频,教学资源丰富,视频讲解透彻,与你共享精品在线配套资源。 

  • 涵盖当前Linux社区中新的开发工具和社区运作方式,反映Linux内核社区新发展。

本书是一本介绍Linux内核实践的入门书,基于Linux 4.0内核,重点讲解Linux内核的理论和实验。本书分为12章,包括Linux系统入门、Linux内核基础知识、内核编译和调试、内核模块、简单的字符设备驱动、系统调用、内存管理、进程管理、同步管理、中断管理、调试和性能优化,以及如何参与开源社区等内容。此外,本书还介绍了Linux内核社区常用的开发工具和理论,如Vim 8和git工具等。书中包括70多个实验,帮助读者深入理解Linux内核。 

?wx_fmt=png


?wx_fmt=png

扫描二维码

当当购书满100减50


- END -



异步图书

聊聊图书背后的故事

?wx_fmt=jpeg



登录 后评论
下一篇
我是你爱豆
12921人浏览
2019-08-22
相关推荐
创新怎么教?
303人浏览
2017-04-21 16:51:00
你需要补哪些核心能力?
417人浏览
2018-05-02 23:02:00
0
0
0
1208