IT

如何成长为一名专业的程序员?

半城伤御伤魂 提交于 2019-12-04 23:35:57
版权声明: 本文为北京尚学堂原创文章,未经允许不得转载。 要想成为一名专业的程序员,仅仅会写代码是不够的。从团队合作去解决问题到版本控制,你还得具备其他关键技能的工具包。当我们询问相关的专业开发人员,那些必备的关键技能都是什么的时候,下面是我们了解到的情况。 关于如何学习代码,各种声音很多,然后很多人就被误导为成为专业开发人员懂得一门编程语言就够了?!就像其他工作一样,光会一个技能那是远远不够的。如果你想要成为一名开发人员,下面就是一些你必须要掌握的最重要的技能(编码这个要求就不赘述了,这太理所当然了)。 1、学会并擅长沟通 虽然一些媒体上面将编程描述为一种“闭门造车”的行为,但事实上,它涉及到很多与人沟通和协作的事宜。如果你工作于一家公司,那么你会成为开发团队的一部分,并且得和其他人交流和合作。 然而,知道如何清晰可信地说话和写作对于那些独立的开发人员甚至更加重要:学校课程一点也没有教我们学习必要的书面表达技巧。(就教我们编程,对不?)在你的职业生涯中——如果你以后想继续晋升的话——那么你需要花大量的时间用于清楚简洁、令人信服的沟通交流——从你需要发电子邮件给同事、经理、客户/合作伙伴、甚至有一天可能是高管仅这个方面想,就足够说服人的了。但是由于我们开发人员习惯于比其他人做事快两倍(我们都很聪明,对吧?!),所以令人沮丧的是,这样会导致需要多花上两倍的时间才能顺利地表达清楚

北京尚学堂:小白如何快速入门编程

旧巷老猫 提交于 2019-12-04 23:35:44
版权声明: 本文为北京尚学堂原创文章,未经允许不得转载。​ 大学里面学的是理论知识,比较广泛,主要是对编程进行一个大体的介绍,对于在大学之前已经对编程有过了解的人,可能大学的东西就是小儿科。但是对于小白来说还是有一定作用的,他能让你体验一下编程的小乐趣,是否真正想编程。相信很多人都忘了自己是什么时候写下人生的第一行代码。我还记得自己的第一个程序编译成功,输出结果的时候,兴奋不已的情景。​更多精彩内容关注微信公众号:北京尚学堂。 学习编程为什么会从入门懵逼 1、必须需要学习底层的技术 学编程不像学习挖掘机。学习挖掘机可以不用学习挖掘机是怎么造出来的,换句话说,不懂挖掘机的原理,也可以学会「怎样开挖掘机」。但是学习编程就不一样了,想真正的学会编程,必须理解编程之下的底层技术。为什么学习编程是这样苦逼的存在呢?因为: ​ 编程世界的基本概念是抽象的,正常的人类无法理解。什么意思?编程的基本概念是什么?二进制,比特,字节,变量,这些看不见摸不着的东西,如果不理解,很自然的就会从入门到懵逼。 公司需要“会造车”的工程师,不需要“会开车”的工程师。公司,尤其是小公司对技术的需求,都是要“制造出一个工具”,而不是“使用和维护现有的工具”。“使用和维护现有工具”的工作通常由其他部门的同事和软件机器人来完成(软件机器人也是由工程师制造出来的)。 软件技术发展太快,今天刚习得的技能明天就过时了

一个真实的实例: Java程序员的成长经历

故事扮演 提交于 2019-12-04 16:53:37
版权声明: 本文为北京尚学堂原创文章,未经允许不得转载。 我们大家都默认:程序员的脑子里除了一些散乱的代码和概念外,已经没有别的东西了吧!现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。 曾经有一个应届的计算机毕业生,在刚离开学校的前几个月,一直沉坠在往日的校园生活中,包括基本的生活饮食、习性、作息等等......“毕业意味着失业”,的确:他每天除了上网打打游戏(英雄联盟、撸啊撸)、吃饭就是睡觉了!有一天他突发奇想:我想开发自己的一套游戏,做胜利的主宰者!于是近乎疯狂地在网上搜索各种有关“程序员”的传说...... 问程序员怎么才能最快的成长,最快的满足企业的需求,到javaeye或csdn上发帖咨询了一下. 1.进入企业,在实践中提高自己。 不过你得祈祷在公司里碰到一个高手,而且他还愿意不厌其烦地教你,这样好象有点难哦! 2.培训 经过思考: 现在经验太少,找个工作非常难,薪水也非常低,放弃。培训,不能像学校一样,n年的学习还找不到自己想要的工作,教的也不是那些凭空想出来的程序。那就必须选择一个好一点的,实战多的培训公司。 通过网上视频学习,比较之后觉得马士兵的java讲的最好,在到主页上一看,这正是我所需要的啊!通过项目教授java!内容也贯穿了整个javase->javaee.我还有点怀疑4个月能把怎么多东西学会吗? 带着疑问,打电话咨询了一下

非计算机专业学Java需要注意什么

早过忘川 提交于 2019-12-04 16:51:40
版权声明: 本文为北京尚学堂原创文章,未经允许不得转载。​ 俗话说:“三百六十行行行出状元”,在互联网+的大背景下,IT行业红红火火的向前发展着。蓬勃发展的背后,也衍生出来形形色色的事物。虽然这么多人想要转行到这一行业中来,自己能做什么。 我们必须明确一个大方向,也就是说现在面向对象的编程范畴。尽管人工智能曾经有所浪潮,但未来5-10年工业界广泛承认并接受的将是面向对象式的编程。工业界目前最流行的面向对象编程语言就是C++和Java。所以基本上锁定这两个方向就可以了。而且完全可以时掌握。掌握Java的精华特性而且一定要知道为什么。​ 如何学习程序设计培养兴趣 男怕入错行,女怕嫁错郎。初学者选择程序设计语言需要谨慎对待。软件开发不仅仅是掌握一门编程语言了事,它还需要其他很多方面的背景知识。 兴趣是能够让你坚持下去的动力。如果只是把写程序作为谋生的手段的话,你会活的很累,也太对不起自己了。你认为,这样有味道吗?有空多到一些程序员论坛转转,你会发现,他们其实很乐观幽默,时不时会冒出智慧的火花。软件开发也不仅仅局限于某几个领域,而是已经渗透到了各行各业几乎每一个角落。​ 明确自己的职业晋升计划 从软件开发人员的生涯规划来讲,我们可以大致分为三个阶段,软件工程师→软件设计师→架构设计师或项目管理师。不想当元帅的士兵不是好士兵,不想当架构设计师或项目管理师的程序员也不是好的程序员

北京尚学堂:程序员的本质

只愿长相守 提交于 2019-12-04 16:51:31
版权声明: 本文为北京尚学堂原创文章,未经允许不得转载。 很多人认为计算机变得如此智能,所以在不久的未来将不再需要程序员。另外一些人认为程序员是天才,他们在电脑前能不断地解决复杂的数学难题。甚至不少程序员对他们是做什么的都没有清晰的概念。在这篇文章中,笔者想给不知情的人解释一下程序员到底是做什么的。 程序员是将人类想法翻译成计算机语言的译者。 他们是两种世界之间的纽带。你认为维护这个纽带很容易吗? 程序员的本质 人类世界的背景 The problem with people is that they’re only human. – Bill Watterson 人类的问题是,他们只是人而已。——比尔·沃特森 人类是生物进化的产物,并且拥有独特而宝贵的器官——大脑,它能为程序员提供想法。大脑有组合复杂的新大脑皮层(对人类而言是独特的),还有从哺乳动物和爬行动物继承的旧结构。旧的大脑结构主要负责生殖(性)和生存(寻找食物或者躲避危险)。新大脑皮层进化成能够更好地支持这些功能,但是,它开始产生奇怪的副作用——意识、思考和好奇心。幸亏这些副作用的影响,人类产生了文明并在数千年后发明了计算机。 一些人相信经过数千年的发展,人类应该变成完全沉闷的、理性的、可预测的生物,但是这并没有发生。人类旧的大脑结构、复杂的心理和社会行为往往使人们不理性,不可预测并带有欺骗性。并且,人类有糟糕的记忆力

编程的艺术门槛

为君一笑 提交于 2019-12-04 16:51:18
编程是门艺术,这个说法由来已久。最近在朱赟的公众号(滴答滴答)读到一篇文章《设计是门逻辑学,然后才是美学》,文中作者漂洋过海追寻艺术,老师却说:“设计不是艺术!”。如果设计都不是艺术,那么编程还能是艺术么? 艺术 那么艺术到底是什么?我一下懵了,发现从来没有想过这个问题,只好求助于 Google。Wikipedia 上的定义是:「艺术是具有智能思考能力的动物(目前其实只有人类吧),借由各种形式及工具借以表达其情感与意识形态,所产生的形态泛称之为艺术. 而上面那篇文章中老师的观点是: 设计是实现别人的需要,艺术是自我表达的需要。 和 Wikipedia 的说法相近,核心都在于表达。而目前公认的艺术分类,包括八大艺术种类:文学,绘画,音乐,舞蹈,雕塑,建筑,戏剧,电影。 它们的共性是这些都是人类自古以来的创造,其中最年轻的艺术门类当属「电影」了,其作品承载了作者的情感和意识形态。而所有被公认的艺术门类,显然它们最终作品呈现出的艺术表达形态更容易被普通人直接的感受到,直接作用于人们的视觉、听觉和触觉感官。 关于编程是一门艺术这个概念,到底什么时候钻入程序员的头脑中的呢?也许来自我们在学习编程的路上,很多讲述编程的书籍都冠以艺术之名,比如:《UNIX编程艺术》,这是一本讲述 Unix 专家们在创造 Unix 过程中形成的理念和文化,那么技术文化是艺术么?还有另一本程序员中的圣经

java培训学员写给尚学堂老师的一封信

可紊 提交于 2019-12-04 09:24:39
尊敬的老师:   北京尚学堂Java培训基地,您好,很高兴在中国能有这么出色的程序员培训基地。   首先,请容许我简单的自我介绍一下,我今年28岁,于2009年毕业于湖南软件职业学院,专业软件工程。性格开朗大方,对待工作认真负责。待人真诚,善于沟通,喜欢听取他人意见,取之精华。有较强的组织协调能力和团队合作精神。喜欢钻研新事物和新技术,有较强的适应能力,有浓厚的编程爱好。   毕业后我在一家国家企业任职网管,由于各种原因,我并没有成为一名真正的程序员,但我内心对Java的渴望一直都没有消停过。从毕业到现在的这一段时间,我有时会在网上下载一些关于“JAVA”方面的学习视频,所以有一定的理论基础,不过代码coding能力比较差劲。我深刻意识到自己的缺点是如此的致命,因此,我需要一个平台,需要一个环境,需要一个机遇,可以在短时间内改变我的现状,让我走上程序员之旅。 在尚学堂参加Java培训的日子   在尚学堂Java培训的日子   直到我大学死党告诉我,深圳有一家很出名的Java培训学院-尚学堂,可以试试看,或许能实现我内心那个一直并未埋没的理想。听到这,我顿然觉得我的人生立马会有一个很大的转折,我内心那颗对Java的热情,对“尚学堂”的渴望油然而生,我觉得我应该能全心,专心去干一件事了。走向尚学堂,为了成为一名合格的程序员,为中国贡献优质的程序代码,我必须静下心来,放下一切,好好学习

程序员面试的注意事项

别来无恙 提交于 2019-12-04 01:42:54
版权声明: 本文为北京尚学堂原创文章,未经允许不得转载。 从毕业到现在,我记录了作为程序员面试过程中被问到的一些问题,希望对自己将来的面试有帮助,也希望对别人有所启发。 下面把我面试三个公司的关键节点和问题列出来回顾一下,也许对大家也有帮助。我最终入职的单位将从这三家中产生。如果你不耐烦看面试问题,也可以跳到最后看我总结的如何准备面试。 第一家,和研发总监面谈 我考虑的第一家公司是安防行业的一家上市公司,叫它C1吧,西安有分公司。北京的HR直接邀请我考虑的,我了解到岗位是研发总监。 HR和人力资源总监的两轮面试通过后,和西安这边的研发总监面谈,聊到了下列问题。大体的顺序是我列的这个样子,有一些可能会有偏差。 1. 自我介绍 这个问题一般都会遇到,技术会问,人力资源也会问,一家公司的面试流程走下来,可能会自我介绍2次或更多。 我基本是从大学毕业开始,介绍到现在。介绍时会涉及工作经历和关键的项目、产品经历,如果有与目标岗位或公司产品相关的经历,就重点提到。 2. 了解我们公司吗?了解哪些产品? C1的公司官网我浏览过几天,研究了产品,还了解了另外两家安防类上市公司。 年龄大了记性差,被问到这个问题时,把看过的产品线的信息居然给忘了…… 3. 了解我们这个岗位吗? HR告诉我是研发总监,后来研发总监告诉我是产品线负责人,对应研发副总监,有一些偏差。 我表示不太了解

北京尚学堂|关于编程,大学没有传授的十件事

强颜欢笑 提交于 2019-12-03 21:36:26
北京尚学堂|关于编程,大学没有传授的十件事 编辑 删除 转载 2016-11-06 10:28:44 标签: java it 北京尚学堂 编程 程序员 我依然记得当年完成学业时,深信自己已经准备好进入任何一家软件公司,并开始成为一个顶级的开发人员。显然,开始工作后没多久,我就意识到,还有很多事是我所不了解的。 在不断吸取经验的同时,我一直在努力学习那些我从来没有学过的,但却是成为优秀的开发人员所应了解的基本知识。以下是我希望自己能在学校就学到的十件事。 编程 1. 我们总是错的 开发人员有着相当大的自我意识,包含了一些其他的非技术性缺陷,这也正是为什么我们很难发现我们做错了什么。我看到过很多无休止的设计讨论,开发人员不断地发表自己的想法……呵呵!猜猜怎样……我们都错了,唯一的区别就是我们犯错的离谱程度不同。 理解并接受这个事实非常重要,我们只有这样做了,才能敞开心胸去听听别人的意见,采用他们的想法,来得出一个更好的解决办法。 2. 事情若有可能出错,就一定会出错 也就是说“希望驱动开发(hope driven development)”,如果你对于某些事并不确定,如果你发现自己使用了“应该”这个词,那你就麻烦了。 而这只有一个解决方案,尽己所能去保证它不会出错,这可能意味着你需要编写一个测试、调试并验证需求…… 3. 所有的代码都烂 在我抱怨那些我碰到过的代码十年之久后

Java项目经验——程序员成长的钥匙

梦想与她 提交于 2019-12-03 18:51:38
版权声明: 本文为北京尚学堂原创文章,未经允许不得转载。​ Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点: 1、掌握项目开发的基本步骤 2、具备极强的面向对象的分析与设计技巧 3、掌握用例驱动、以架构为核心的主流开发方法 没有人愿意自己一辈子就满足于掌握了一些代码实现的技巧,别人告诉你要实现什么,你就用代码堆砌来实现别人的要求!你必须学会从整个项目的角度去思考!你必须学会假如你是项目经理,你该如何思考!你必须学会假如你是架构师,你该如何思考!你必须掌握针对某个特定问题领域的分析方法!更多精彩内容关注微信公众号:北京尚学堂。 关于基础tb知识: 你可以看看这些名词或知识点,看是否能说出个一二三四来。 JavaSE —-基本语法、数据类型、操作符等:int、long、Integer、Long、if、else、for、while —-面向对象:class(类)、Object(对象)、instance(实例)、state(状态)、behavior(行为)、field、method、new、可见性(访问控制)、attribute、property、package、import、static variable、class variable、instance variable、heap、method area、stack、GC