程序员

程序员修炼之道之注重实效的程序员

心已入冬 提交于 2020-01-30 10:21:39
《程序员修炼之道–从小工到专家》 序言:小编写本文的最主要的目的是为了自己以后的道路上走的更加通畅所作的一点努力,成为一个注重实效的程序员,多思考、多接受新的东西、贵在坚持,加油! 注重实效程序员的特征: 早期的采纳者/快速的改编者:你具有技术上和技巧上的直觉,你喜欢试验各种事物给你一样新东西,你很快就能掌握它,并把它与你的知识和其余部分知识结合在一起 好奇:你喜欢提问 批判的思考者:你不会不首先抓住事实照搬别人的说法 有现实感:你会设法理解你面临的每个问题的内在本质 多才多艺:你尽力熟悉广泛的技术和环境,并努力工作,以与各种新发展并肩前行 提示的方式来陈述: 提示1 Care About Your Craft 关心你的技艺 提示2 Think! About Your Work 思考!你的工作 注重实效的个体,大型的团队 我们,采集的的只是石头,却必须时刻展望未来的大教堂 ——采石工人的信条 它是一个持续的过程 如何得到一块漂亮的草坪?你只要每天早晨拂去露水,每隔一天割一次草,每个星期碾压一次就行了,这样做上00年,你也将拥有一片漂亮的草坪。 来源: CSDN 作者: 小智解说 链接: https://blog.csdn.net/qq_42680327/article/details/104111157

2020软件工程师必备的11项技能

不想你离开。 提交于 2020-01-29 09:26:40
CSDN 2020-01-28 13:21 查看 作者 | javinpaul 译者 | 张涛 责编 | Carol 出品 | CSDN(ID:CSDNnews) 本文分享作者认为每个程序员在2020年需要了解或学习的技巧。其中编程语言包括C++、Java,必需的计算机概念包括数据结构、算法和计算机网络概念,工具包括Git、Docker、Kubernetes和容器,云计算概念和平台包括AWS、GCP、Microsoft Azure,常青树技能包括SQL和UNIX,编辑器包括Eclipse、Visual Studio,文本编辑器包括VIM和NotePad++等。 本文提供的列表可能并不完整,但为程序员需要知道的技能提供了一个好的起点。如果你有志于软件开发职业或想找编程方面的工作,那么本文的内容是你所需要知道的,并且可以用来提高竞争力。 废话少说,这里列出了一些我个人认为每个程序员都应该知道的技能,不管他从事的是什么工作。这些都是必要的技能,并且长期为你受用。任何在时间、金钱和努力方面的投资都会帮助你在整个职业生涯中获得回报。 2020软件工程师必备的11项技能 1、容器(Docker和Kubernetes) 在2020年,作者认为程序员、软件工程师、数据科学家,甚至项目管理人员都应该了解一些Docker和Kubernetes这样的容器和工具的相关知识。

什么是JVM?Java虚拟机简介

半世苍凉 提交于 2020-01-29 08:05:01
JVM管理内存,并为基于Java的应用程序提供可移植的执行环境。 Java虚拟机是一个旨在执行其他程序的程序。这是一个简单的想法,也是我们最伟大的编码功夫的例子之一。JVM颠覆了当时的现状,并在今天继续支持编程创新。 JVM的使用和定义 JVM有两个主要功能:允许Java程序在任何设备或操作系统上运行(称为“一次写入,随处运行”原则),以及管理和优化程序内存。当Java在1995年发布时,所有的计算机程序都被写入一个特定的操作系统,程序内存由软件开发人员管理。所以JVM是令人耳目一新的。 Figure 1: High-level view of the JVM 对JVM有一个专业定义是很有用的,而且软件开发人员每天都会考虑这个定义。让我们把这些分解一下: 技术定义:JVM是执行代码并为代码提供运行时环境的软件程序的规范。 日常定义:JVM是我们运行Java程序的方式。我们配置JVM的设置,然后依赖它在执行期间管理程序资源。 当开发人员谈到JVM时,我们通常指的是在机器上运行的进程,特别是服务器,它表示并控制Java应用程序的资源使用。与JVM规范相比,JVM规范描述了构建执行这些任务的程序的需求。 谁开发和维护JVM? JVM被广泛部署、大量使用,并由一些非常聪明的程序员维护,包括公司程序员和开源程序员。OpenJDK项目是Sun微系统决定使用开源Java的产物

机器学习的最佳入门学习资源

|▌冷眼眸甩不掉的悲伤 提交于 2020-01-28 23:26:55
Programming Libraries 编程库资源 我是一个“学习要敢于冒险和尝试”观念的倡导者。这是我学习编程的方式,我相信很多人也是这样学习程序设计的。先了解你的能力极限,然后去拓展你的能力。如果你了解如何编程,可以将编程经验很快借鉴到深入学习机器学习上。在你实现一个实际的产品系统之前,你必须遵循一些规则、学习相关数学知识。 找到一个库并且仔细阅读相关文档,根据教程,开始尝试实现一些东西。下面列出的是开源的机器学习库中最好的几种。我认为,并不是他们中的每一种都适合用在你的系统中,但是他们是你学习、探索和实验的好材料。 你可以从一个由你熟悉的语言编写的库开始学习,然后再去学习其他功能强大的库。如果你是一个优秀的程序员,你会知道怎样从一种语言,简单合理地迁移到另一种语言。语言的逻辑都是相同的,只是语法和API稍有不同。 R Project for Statistical Computing :这是一个开发环境,采用一种近似于Lisp的脚本语言。在这个库中,所有你想要的与统计相关的功能都通过R语言提供,包括一些复杂的图标。CRAN(你可以认为是机器学弟的第三方包)中的机器学习目录下的代码,是由统计技术方法和其他相关领域中的领军人物编写的。如果你想做实验,或是快速拓展知识,R语言都是必须学习的。但它可能不是你学习的第一站。 WEKA :这是一个数据挖掘工作平台

兼职程序员一般可以从什么平台接私活?

≯℡__Kan透↙ 提交于 2020-01-28 22:29:30
这个问题我进行了系统性的总结,以下将进行言简意赅的说明和渠道提供,希望对各位小猿/小媛们有帮助~ 根据我们的经验,程序员兼职主要分为三种:兼职职位众包、项目整包和自由职业者驻场。 所谓的兼职职位众包,指的是需求方这边有自有工程师配合,只需要某个职位的工程师开发某个模块的项目。比如开发一个 app,后端接口有人开发,但是缺少 iOS 前端开发工程师,那么他们就会发布一个职位招聘前端,来配合公司一起完成项目开发。这种需求的特点是周期比较短、项目金额大约是在 5000~30000 之间居多。 项目整包,指的是需求方没有自己的技术团队,需要我们整包开发的项目。比如开发一个 app,需求方只有一个简单的需求文档,需要你这边有团队进行 UI 设计啊、前后端程序员开发啊等等。这种需求的特点就是周期比较长、项目金额比较大,目前平台上的项目一般在几万到几十万不等,这种项目一般都要分个三到四期来进行阶段性开发。 还有一个就是自由职业者驻场需求,适合某些需求方的保密类项目或公司有硬性要求需要驻场的项目。当然,开发内容类似于兼职职位众包,驻场费用大概在 500/8 小时到 3000/8 小时之间。 接下来,我们看一下目前的接单渠道,我们主要把这些渠道分成三类:垂直众包平台、线上技术论坛、线下自有渠道。 一、垂直众包平台 这类平台是从 15 年到 16 年开始出现的,专注于 IT 众包领域

给盲目兴奋的程序员们的建议

谁说我不能喝 提交于 2020-01-28 18:19:15
我偶然看到一些漫无目的、精力旺盛的程序员说出类似这样的话: 嘿,大家好!我刚刚学会了Erlang/Haskell/Python,我正在找一个大型项目用它们去写。如果你们知道,请告诉我! 或者 我喜欢Linux和开源软件,我想通过开发一个项目来向开源社区贡献我的力量。有没有一个很重要的软件,但只能在Windows上运行,而你希望有个Linux版本的? 这些找不着方向的问题总是让我困惑不已。他们把程序语言或操作系统或软件许可协议当成关键条件。他们的目的跟解决某个问题或跟创造价值或跟说话人对软件的兴趣没有一点关系。你能相信一个不爱音乐的人能开发出一个好的乐谱软件吗?对Photoshop没有专业了解的人能克隆出一套Photoshop软件吗?不过我不想在这里详细讨论这些负面的问题。 下面是我对那些发出这些问题的人的一些建议: 停止发问。想一想你所有的个人兴趣,去解决一个跟你这些兴趣相关的简单的问题。例如,我用电子琴来联系我的吉他技能,但我想给这电子声乐里加入一些人性的元素,像自动音效补偿,偶然的变奏,等等。怎样才能做到这些呢?我可以写一个简单的声乐处理程序——不需要图像界面——看看效果如何。我照了很多的照片,我需要一个照片分类标记工具,不需要像Adobe Lightroot那样全能。简单但够用,一个下午我就你解决此类问题。 两点:(1)要简单,(2)是你实际要用的东西。

创业者不懂项目的后果?损失百万千万的比比皆是,本篇教你打造值钱的互联网项目

佐手、 提交于 2020-01-28 16:40:32
这些年来,互联网浪潮一浪接着一浪, 很多传统生意的老板,意识到了互联网将会是水和电一样的能源, 扎进了互联网创业的浪潮... 然而,因为不懂项目, 重金投入,血本无归... 深圳一家做服装进销存APP的公司, 就是这样的例子, 具体名字不便透露, 老板最开始做服装批发生意的, 每年有几百万的利润,好的时候有上千万, 2017年的时候因为看好服装进销存APP, 分析了下同行的痛点,觉得服装进销存APP高度可行, 所以重金扎入组建项目团队, 最开始找了一个不大懂技术的小伙子负责项目推进, 那个小伙子靠着自学慢慢的上路, 我们去他们公司深入沟通了下,发现招的大部分人也不怎么懂项目, 结果可想而知, 第一年烧了500万, 几乎什么都没搞出来, 老板非常痛苦,花了这么多钱,没有取到效果, 我给他们的建议就是,创业早期一定不要找是懂非懂的新手, 这样只会耽误和浪费时间, 宁愿多花点钱找个能解决问题的, 也不要去找不专业的,去培养他, 因为他不专业,没有丰富项目实战经验,他招的人注定也会是不专业的, 这样不仅耽误了时间,白花了钱,还错过了项目窗口期。 后来这个老板直接放弃了,花了那么多钱,没有搞起来。 老板心里难受,害怕,所以不敢继续了,没多久团队就解散了。 所以,互联网项目成功的关键秘诀之一在于, 早期要提高成功率,尽量早上线,一上线就能赚钱, 初步奠定信心你才有动力持续投入下去...

黑马程序员 飞机大战下 笔记

与世无争的帅哥 提交于 2020-01-28 12:51:29
前言 昨日推箱子游戏的碰撞检测中,我忽略了箱子互相挨着的情况。修改的方法很简答: if len(pygame.sprite.groupcollide(hero_group,box_group,False,False)) > 0: self.rect.y -= 50 if len(pygame.sprite.groupcollide(hero_group,wall_group,False,False)) + len(pygame.sprite.groupcollide(hero_group,box_group,False,False))> 0: self.rect.y += 50 self.rect.y += 50 加上检测是否有箱子即可。 在我看来,黑马源代码有一个我容易忽略的点,其编写敌机、英雄、背景和子弹类多半使用的是私有成员函数。 def __create_sprites(self): 之前的我在直接复制改代码的时候忽略了这个问题,因为无法访问成员函数这个问题瞎忙活了半晌,最后找到前面的下划线时哭笑不得。 英雄和子弹 英雄拥有的额外属性:水平移动,定时发射子弹。于update函数中添加位移限制,利用get.pressed函数,省去反复摁键的繁赘。 def __event_handler(self): key_press = pygame.key.get_pressed()

机器学习的最佳入门学习资源

孤街醉人 提交于 2020-01-28 05:48:59
这是一篇很难写的文章,因为我希望这篇文章能对学习者有所启发。我在空白页前坐下,并且问自己了一个很难的问题:什么样的库、课程、论文和书籍对于机器学习的初学者来说是最好的。 文章里到底写什么、不写什么,这个问题真的让我很烦恼。我必须把自己当做一个程序员和一个机器学习的初学者,站在这个角度去考虑最合适的资源。 我找出了每个类型中最适合的资源。如果你是一个真正的初学者,并且乐意于开始了解机器学习领域的相关知识,我希望,你可以在我的文章中找到有用的资料。我的建议是,从中挑出一件来,一本书或者是一个库,反复阅读或者认真学习所有的相关教程。挑出一个并且坚持学习,直到你完全掌握,再重新选择一个,重复这个学习过程。现在就让我们开始吧! Programming Libraries 编程库资源 我是一个“学习要敢于冒险和尝试”观念的倡导者。这是我学习编程的方式,我相信很多人也是这样学习程序设计的。先了解你的能力极限,然后去拓展你的能力。如果你了解如何编程,可以将编程经验很快借鉴到深入学习机器学习上。在你实现一个实际的产品系统之前,你必须遵循一些规则、学习相关数学知识。 找到一个库并且仔细阅读相关文档,根据教程,开始尝试实现一些东西。下面列出的是开源的机器学习库中最好的几种。我认为,并不是他们中的每一种都适合用在你的系统中,但是他们是你学习、探索和实验的好材料。 你可以从一个由你熟悉的语言编写的库开始学习

黑马程序员:从零基础到精通的前端学习路线

廉价感情. 提交于 2020-01-28 01:20:03
黑马程序员:从零基础到精通的前端学习路线 随着互联网的深入发展,前端开发工程师一跃成为市场上非常抢手的人才。很多同学,包括以前做UI的、Java的、或者对于IT完全零基础的同学都想学习前端。下图是网上流传甚广的一张前端学习思维导图,很多初学者表示看到这些密密麻麻的知识点就已经晕了。确实,前端是一门涵盖面很广的学科。但是想学前端的你也不用慌张,内容虽多但有迹可循,只要循序渐进就不怕学不好前端! 那么前端开发到底需要学什么?应该怎么学?接下来黑马程序员前端学院教你如何从零基础学习前端。 一、前端开发入门 在入门阶段,你首先要学会最基本的技能:根据UI的设计稿,实现HTML的静态页面制作。这就要求你得掌握HTML、CSS页面布局排版、样式美化等技能。 在这个阶段你需要学习: 1、HTML+CSS基础 掌握HTML的标签使用、排版技巧、CSS的布局定位、样式美化、浏览器兼容性。 2、JavaScript基础 掌握JS的基本语法、条件、语句、循环等,学会常用算法,增强逻辑性。 3、常用的前端工具 比如Webstrom、Sublime、Dreamweaver等。掌握其快捷键设置等技巧,可快速提高开发调试效率。 这个阶段的学习难度相对不高,学完这些之后,我们已经能完成静态页面的制作。当然,这只是入门,如果你想用这些技能找工作的话还是比较困难的。 二、前端开发初级 在接下来的这一个阶段