1、 程序员意味着要编程序。(如果你仅仅想得到一份高薪水的工作,喝喝咖啡就等老板发薪水,我奉劝你还是另找一份更合适的工作,譬如练摊,真的,兄弟,这份工作不适合你)
2、你是学文的还是学理的,编程序也许需要浪漫,但更需要逻辑和严谨。(说坦白点就是,在你没有找到乐趣以前,它很枯燥)
3、你有对新技术追求的热情吗?你有刨根问底的探索精神吗?(热情绝对是最重要的!你仔细思考一下自己的性格适合当程序员吗?)
4、当程序员决不是什么好差事,时刻需要学习,需要思考。(直到你成为那个可以引导别人去学习和思考的人,你才可以偷偷的嘿嘿笑,又一群傻蛋)
5、程序员的未来很迷茫。(但我认为关键看你自己!我希望你是一个有追求的人,不仅仅是混碗饭吃。因为真正的乐趣在于创造;如果你能改变软件业的历史,那才是英雄;不想成为Bill Gates,不想成为Dennis Ritchie和 Bjarne Stroustrup,我会说你没有追求。有个关于程序员未来的笑话,也许你还没听过,你该听一听,摘抄如下:
一个程序员对自己的未来很迷茫,于是去问上帝。
“万能的上帝呀,请你告诉我,我的未来会怎样?”
上帝说“我的孩子,你去问Lippman,他现在领导的程序员的队伍可能是地球上最大的”
于是他去问Lippman。
Lippman说“程序员的未来就是驾驭程序员”
这个程序员对这个未来不满意,于是他又去问上帝。
“万能的上帝呀,请你告诉我,我的未来会怎样?”
上帝说“我的孩子,你去问Gates,他现在所拥有的财产可能是地球上最多的”
于是他去问Gates。
Gates说“程序员的未来就是榨取程序员”
这个程序员对这个未来不满意,于是他又去问上帝。
“万能的上帝呀,请你告诉我,我的未来会怎样?”
上帝说“我的孩子,你去问侯捷,他写的计算机书的读者可能是地球上最多的”
于是他去问侯捷。
侯捷说“程序员的未来就是诱惑程序员”
这个程序员对这个未来不满意,于是他又去问上帝。
“万能的上帝呀,请你告诉我,我的未来会怎样?”
上帝摇摇头“唉,我的孩子,你还是别当程序员了”)
6、当程序员还是很有乐趣的。(当你学到新知识时,当你有新的思想见解时,当你有新的产品问世时,和知己探讨你的成果时…我问你,觉得这些是乐趣吗?)
7、当程序员不易也不难。(世间事有难易乎?为之…;不为…。你有决心和信心吗?)
8、你真的要当程序员?是你自己的想法?
9、你舍得花钱买书吗?(读好书绝对是学习编程的最佳捷径。你一定会说,现在电脑书籍真他XX的贵,没法子,谁让知识和技术在人家的脑袋,在人家的书里呢;等你写书时可以把价格定低一点,记着还有好多没钱但想买书的兄弟很困难呀。要舍得买书,买好书,不好的的书不如不读,其害大于其益,关于买什么书,你可以问高手或看候捷的书评;准备一个小本子记录你想买的书的名字,逛书店时看看,如果好就买下,记住要读,别光买不看。) 10、我告诉你,程序就是:任何有目的的、预想好的动作序列,它是一种软件。
11、编程序就是编写程序。
12、你想好了吗?(如果你想好了还是决定要当程序员,可以继续往下读;否则,你可以继续寻找别的出路了。)
(三) 一个程序员应该具备的基础知识和概念
1、计算机是有什么组成的,CPU是什么东西,其工作原理是什么。(对于这些以及下面将要提到的概念我不会告诉你什么答案,你可以看相应的教材,关于教材我会在下一部分详述,记住理解最重要!)
2、机器语言和微指令集的概念。
3、程序的概念。
4、汇编语言是低级语言但不是机器语言。
5、高级语言主要有那些?(C,C++,Basic,Pascal,Fortran,C#,Java等等;如果你是中国软件业的英雄,你也写一门语言,最好不用英语) 6、编译程序和解释程序的概念和其原理。(编译器是高手和专家编写的)
7、HTML、XML等是标识性语言。
8、Prolog是人工智能语言。
9、操作系统OS的概念和原理。(Windows98,Windows2000,Windows NT,UNIX,Linux,等等都是OS,还有一些实时OS,嵌入OS,编这些的绝对是高手)
10、Windows编程说白了就是Windows API的调用。(中国的程序员很多只是会编windows程序,用的是VB,我的建议是这些程序员顶多只是低级编码员,我称其是coder)
11、VC++、VB、BC、BCB、Delphi、VF等都只是编程的工具和环境,不是编程语言。
12、面向结构的设计概念。
13、面向对象的概念。(好好理解,兄弟,这个东西还是很重要的)
14、软件工程的概念和原理。(如果你想当老总就需要好好研究了,系统分析员比编码员要高一个等级,薪水也高哟)
15、数据库的概念。(要熟悉一些著名的数据库系统和语言的名字,如Orcle,SQL,DB2,DyBase等)
16、了解网络概念。
17、了解多媒体概念。
18、熟悉和掌握数据结构和基本算法。
19、是不是要求太高了,别着急慢慢来,进步在不知不觉之中。(一旦开始学习,一个月以后你就会有一个基本的概念;两个月以后你就会感觉自己有了全面的基础知识;当你知道编程序是怎么回事时,说明你已经入门了。也有很多人编了很多年程序还没有入门呢,你不会希望自己步其后尘吧。要有信心和耐心。沉不住气怎么能成大事?!)
(四) 教材推荐
――-推荐的教材主要还是针对概念来的,最好选用名校的教学用书。
1、《计算机组成原理》(熟悉)
2、《数据结构》(掌握)
3、《操作系统》(了解->熟悉)
4、《The C language》(掌握)
5、《编译原理》(了解原理)
6、《汇编语言》(了解)
7、《计算机网络》(了解)
8、《软件工程》(了解)
9、《关系数据库》(熟悉)
10、《The C++Languege 》(掌握)
11、《面向对象设计》(掌握;结合C++学习)
(五)一些经验和体会
1、真正的程序员用C++;(一位专家说的)
2、动手去编程序;
3、动脑去思考;
4、要有良好的编程风格;
5、读书,读好书,尽量读原版书!(我反复强调这一点,读书要有选择,坚持读好书,名家出的经典书,不要浪费实践在一些粗制滥造的书上面;坚持博览群书)
6、有自己的学习计划;
7、总结自己的经验教训;(准备一个笔记本,记录错误和心得)
8、不要怕学新东西;
9、要有软件工程的思想;
10、善于发现问题,然后去寻找答案;
11、向高手请教;(要虚心直到你成为高手)
12、和同行交流;(不善于交流肯定不行)
13、懂得软件的实质,不要被千变万化的表象所迷惑;
14、真正要学习用的是编程语言和方法,不是什么库,什么类,什么工具;(学用那些什么库都比较简单,但光会这些库,我觉得还远远不够)
15、学习wiodows编程主要是学习windows OS和win32 API;
16、有空了解一下嵌入式开发;
17、有空了解一下PDA软件开发;
18、了解一下.NET框架和C#语言,也许它是你新的衣食父母;
19、要有耐心,不要作浮躁的人; 20、对程序加注释,并保留你的老程序;
21、学到的东西越多,了解的越多,你就越接近专家;
22、有空去逛逛CSDN,那里有你很多知己;
23、要有信心成为一个优秀的程序;
(六)一些好书的推荐
1、《The C Programming language》 (Keinighan & Dennis Ritchie 1988)
2、《The C++ Programming Languague》(Bjarne Stroustrup 1997)
3、《Inside The C++ Object Model》 (lippmans)
4、《Effective C++》 (同上)
5、《More Effective C++》 (同上)
6、《Exceptional c++》
7、《C++面向对象高效编程》
8、《设计模式》
9、《Thinking In C++》
10、《The Standard C++ Bible》(一般推荐)
11、《The Art of Computer Programming 》
12、《Programming Windows》 (Charles Petzold)
13、《VC++5.0技术内幕》
14、《MFC 深入浅出》
15、《软件需求》
16、《Advanced Windows》
17、《C++ primer》
18、《win32程序员参考手册》
19、《用TCP/IP进行网际互连》
20、《COM 本质论》
(七)学习计划
――-这个学习计划是我个人定的,也共享给大家参考一下,共同进步吧。 1、《计算机组成原理》
2、《操作系统》
3、《数据结构》
4、《汇编语言》
5、《 C 》
6、《 C++ 》
7、《VC 技术内幕》
8、《Programming Windows》
9、《深入浅出MFC》
10、《Advanced Windows》
11、《Inside The C++ Object Model》
12、《Thinking in C++》
13、《Effective C++》
14、数据库
15、网络
16、嵌入式OS和编程
17、硬件单片机
18、.NET和C#
19、软件工程
20、UNIX和Linux
程序员入门:如何自学编程
首要之首:不要急于选择一种语言 新手们有一个常见的错误就是犹豫于判断哪种编程语言是做好的、最该先学的。 我们有很多的选择,但你不能说那种语言“最好”。 我们应该理解:说到底,什么语言并不重要。 重要的是理解数据结构、控制逻辑和设计模式。 任何一种语言—甚至一种简单的脚本语言—都会具有所有编程语言都共有的各种特征,也就是说各种语言是贯通的。 我正在攻读我的计算机学学位,我编程使用Pascal,汇编,和C语言,事实上我从来没有把它当成职业以求获得回报。 我一直在自学编程,工作上用不到它,我使用现有的知识,参考各种文档和书本,学习它们的用法。 因此,不要急于选择何种编程语言。 找出你想要开发的东西,使用一种能够完成这项任务的语言,这就可以了。 根据各种开发平台的不同,有很多不同的软件开发形式可供你选择:从网站应用到桌面软件到智能手机软件到命令行脚本工具。 这篇文章里,我将重点介绍一些很受欢迎的入门教程和资源,它们能帮助你学会如何在各种主流的平台上编程开发。 我先假设你是一个悟性很强的读者,但对于新手,当我谈论程序代码时还是要按照入门级的水平。 因为即使是你自己看一篇编程入门手册,如果发现都能理解时,心情自然会很高兴,这样利于你进一步学习。 桌面脚本 想要动手在Windows里或苹果系统里编程,最简单的方法是从一种脚本语言或宏语言开始,例如AutoHotkey(Windows) 或Automator(苹果系统)。 如今一些硬件程序员冲着他们的屏幕大喊大叫,说AHK和AppleScript并不是“真正”的编程语言。 也许他们说的是对的—技术上,这些种类的语言只能做一些上层的编程。 但是对于那些只是想来脱盲、想在他们的电脑里实现一些能自动运行的程序的新手来说,这些语言会是一个绝妙的入门入口—而且你会吃惊于它们丰富的功能。 例如,大家都喜爱的Texter就是Adam使用AutoHotkey开发的能独立运行的Windows应用程序,所以说这种脚本语言远不是只能开发小规模脚本软件。 如果你想从AutoHotkey入手,可以参考Adam的指导:how to turn any action into a keyboard shortcut using AutoHotkey(然后,你可以下载Texter源代码看看这个功能齐全的使用AHK开发的Windows应用程序的内部结构)。 Web开发 HTML 和 CSS:开发网站,你第一件要知道的事情就是HTML(网页就是由它组成的)和CSS(一种让外观更好看的样式标记)。 HTML 和 CSS 并不是编程语言—它们只是页面的结构和样式信息。 然而,在开始开发web应用程序之前你必须要学会如何手工的编写简单的HTML和CSS,web页面是任何webapp的前端显示部分。 这个HTML 指导是你入手的好地方。 JavaScript:当你可以通过HTML和CSS构建一个静态页面后,事情就开始变得有趣了—因为到了该学JavaScript的时候了。 JavaScript是一种web浏览器上的编程语言,它的魔力就是能在页面里制造一些动态效果。 JavaScript可以做bookmarklets,Greasemonkey脚本, 和Ajax, 所以它是web上各种好东西的关于因素。学习JavaScript从这里开。 服务器端脚本:一旦你学会了网页里的知识,你就要开始对它添加一些动态服务器操作—为了实现这些,你需要把目光转移到服务器端脚本语言,例如PHP, Python, Perl, 或 Ruby。 举个例子,如果想要制作一个网页形式的联系方式表单,根据用户的输入发送邮件,你就需要使用服务器端脚本来实现。 像PHP这样的脚本语言可以让你跟web服务器上的数据库进行沟通,所以如果你想搭建一个用户可以登录注册的网站,这样的语言正是你需要的。Webmonkey是一个优秀的web开发资源网站,里面有大量的各种web编程语言的指导手册。 阅读一下他们的PHP 初学者指南。 当你感觉差不多了的时候,看看WebMonkey’s PHP and MySQL tutorial学习如何使用PHP跟数据库交互。 网上最好的要数PHP语言官方的在线文档和函数参考了。 每个知识点上 (例如strlen function这个)都在后面列出来用户的评论注释,这些对于文档的本身是非常有价值的。 (我很喜欢PHP,但还有很多其他种服务器端的脚本语言你们都可以选择。) Web框架:过去数年里,web开发人员在开发动态网站的过程中不得不一遍又一遍的针对重复遇到的问题写出重复的代码。 为了避免这种每次开发一些新网站都会重复劳动一次的问题,一些程序员动手搭建了一些框架,让框架替我们完成重复性的工作。 非常流行的Ruby on Rails框架,作为一个例子,它利用Ruby编程语言,为我们提供了一个专门面向web的架构,普通的web应用程序都能使用它来完成。 事实上,Adam使用Rails开发了他的第一个正式的(而且是叹为观止的!)web应用程序,MixTape.me。这就是他的如何在没有任何经验的情况下搭建一个网站。还有一些其他的web开发框架包括CakePHP(针对 PHP 编程者),Django(针对 Python 编程中), 以及jQuery(针对 JavaScript). Web APIs:API (应用层序编程接口)是指不同的软件之间相互交换的程序途径。 例如,如果你想在你的网站上放一个动态的地图,你可以使用Google Map,而不需要开发自己的地图。The Google Maps API可以轻松的让你通过JavaScript在程序中引入一个地图到你的页面上。 几乎所有的现代的你所知道的和喜爱的web服务都提供了API,通过这些API你可以获取到他们的数据和小工具,在你的应用程序里就可以使用这些交互过来的东西了,例如Twitter, Facebook, Google Docs, Google Maps, 这个列表远不止这些。 通过API把其他web应用集成到你的web应用里是现在富web开发的前沿地带。 每个优秀的主流的web服务API都附带有完整的文档和一些快速入手的指导(例如,这个就是Twitter的)。 疯狂吧。 命令行脚本 如果你想开发一个程序,让它读取文字或文件、输入输出一些有用的东西,那么,命令行脚本语言将是个不错的选择。 然而它并不像web应用程序和桌面应用程序那样有吸引力和好看的外观,但是作为快速开发的脚本语言,你却不能忽视它们。 很多的在linux平台上运行的web脚本同样能以命令行模式运行,例如Perl,Python和PHP,所以如果你学会了使用它们,你将能在两种环境中使用它们。 我的学习道路一直没离开Perl太远,我自学Python使用的是这本优秀的在线免费书Dive into Python。 如果成为一个Unix高手也是你学习的目标,那么你绝对要精通bash这个脚本语言。 Bash是Unix和Linux环境下的一种命令行脚本语言,它能够为你做所以的事情:从自动备份数据库脚本到功能齐全的用户交互程序。 起初我没有任何使用bash脚本的经验,但最终我用bash开发了一个全功能的个人代办任务管理器:Todo.txt CLI。 插件(Add-ons) 如今的web应用程序和浏览器都可以通过一些扩展软件来丰富自己的功能。 由于一些现有的软件,例如Firefox、WordPress越来越受到开发人员的关注,插件的开发也日益流行,人们都在说“But if only it could do THIS…” 只要你掌握了HTML,JavaScript和CSS,你就可以在任何的浏览器里开发你想要的很多东西。 Bookmarklets,Greasemonkeyuser scripts, 和Stylishuser styles这些软件都是用的更普通页面一样的语言写成的, 这几个东西都值得你去研究一些。 更高级的浏览器扩展程序,例如Firefox的扩展,它们可以帮助你很多。 开发Firefox的扩展,举个例子,需要你精通JavaScript和XML(一种标记语言,类似HTML,但具有更严格的格式)。 早在2007年我就写下来how to build a Firefox extension, 这是我在笨手笨脚的研究网上的一些学习资料后获得的成果。 很多免费的、受欢迎的web应用程序都提供了扩展框架,例如WordPress 和 MediaWiki。 这些应用程序都是用PHP写成的,所以只有对PHP熟悉你才能做这些事情。 这个就是如何编写WordPress插件。 而想驾驭Google Wave前沿技术的开发人员可以从使用HTML, JavaScript, Java, 和 Python 写小组件和小工具开始。 我写的第一个Wave bot是跟着这个一个下午时间的快速入门指导开始的。 开发桌面上的Web应用程序 学习编程最好的结果是你在一个环境下学的东西可以应用到另外的环境中。 先学习开发web应用程序的好处就是我们有一些方法可以让web应用程序直接在桌面上运行。 例如,Adobe AIR是一个跨平台的即时运行平台,它能让你编写的程序运行在任何装有AIR的操作系统的桌面上。 AIR应用程序都是由HTML, Flash, 或 Flex 写成的,所以它能让你的web程序在桌面环境中运行。 AIR是开发部署桌面应用程序的一个优秀的选择,就像我们提到过的10个让你值得去安装AIR的应用程序。 移动应用开发 能在iPhone或者Android智能手机上运行的手机应用程序的开发如今正呈现井喷之势,所以你也可以梦想一下如何在iTunes应用商店里通过你的天才程序大赚一笔。 但是,作为一个编码新手,直接奔向移动开发所经历的学习曲线可能会很陡,因为它需要你熟悉高级的编程语言,例如Java和Objective C。 然而,你当然应该看看iPhone 和 Android 编程究竟是什么样子的。 阅读这个简单的iPhone应用开发例子可以初步认识一下iPhone程序的开发过程。 Android 程序都是由Java写成的,这有一个简单的视频教程教你如何开发第一个”Hello Android“程序(注:可能需要代理才能看这个视频)。 耐心,刻苦,尝试,失败 好的程序员都有一个不达目的誓不罢休的品质,他们会惊喜于通过长期推敲和失败换来的一点成绩。 学会编程会有很好的回报的,但是学习的过程可能会是饱受挫折和孤独的。 如果有可能,最好找个伴一起陪你做这件事。 想精通编程,这和其他事情一样,需要坚持,反复尝试,获得更多的经验。
电脑怎样用管理员方式打开文件
方法1:在要运行的主程序或程序快捷方式上单击右键→以管理员身份运行;
方法2:在要运行的主程序或程序快捷方式上单击右键→属性→兼容→勾选”以管理员身份运行此程序“→确定,再双击要运行的主程序或程序快捷方式即可。
如何用一句话证明你是程序员?
1、女朋友就是私有变量,只有我这个类才能调用
2、爱上一个人,就是内存泄露-你永远释放不了
3、编码间,bug灰飞烟灭
4、这句话老值钱了:Helloworld
5、1+2==3
6、老板凑个整数吧,1024
7、你说第一句? 从0算起还是从1算起
8、不管写什么,没事在后面加个分号;
9、真的勇士,敢于直面惨淡的warning、敢于正视淋漓的error。
10、神马,我打开firebug看看那玩意怎么实现的。
11、一同学问我,软件外包是什么。解释了几句还没明白,遂想了一下:包工头知道吧?顿悟!
12、继承,是幸福的延续;重载,是幸福的重生。
13、情人就是指针,用的时候一定要注意,要不然就带来巨大的灾难。
14、擦,没同步就覆盖了
15、UTF-8还是GBK?
应该怎么管理程序员?
我是一个非常能忍耐的人,非常能忍。事情是这样的,去年春天,由于上一个东家战略失误,导致我们部门被裁(悲剧啊),只好另寻他路,恰逢旧日总监空降到现在这家公司做老总,于是我就名正言顺的过来做嫡系部队。可等俺入职后,才发现这家公司水很深啊……。溜须拍马的人比比皆是,竭尽所能讨好领导,有些话我听着都觉得脸红心跳,胃部翻腾。此为公司第一阵营:谄媚,技术不精,管理不强,但是嘴上功夫了得,总能讨得公司一把手二把手欢心,无所不用其极,堪比现代“和珅”。这一层人比较少,金字塔尖嘛。公司第二阵营:埋头苦干,一心只读“圣贤书”,两耳不闻“窗外事”。这是一群被极度剥削的新人,新时代的农奴,工资在公司垫底,升职没他们,加薪更别想,技术没人带,基本处于群龙无首状态,每天得过且过。这一层人最多,是整个公司的金字塔底,任凭黄沙盖脸,毫无怨言。公司第三阵营:技术“大牛”,是的,这群人一般都是个小头头了,管理着为数不少的第二阵营,爱好钻研技术,沟通能力基本为0,未接受过正规化训练,一件事情要反复说多次方能“略懂略懂”,平时对自己手下不管不问,老子研究高深算法,你们还是自己看书学习吧。好吧,我来了之后就有了第四阵营:不服管教派。 先说说几件小事:1.刚来的时候,安排我进了一个开发中的项目组,让我写一个图片处理和加水印的模块,图片处理,其实就是根据用户上传的图片(像素很大,不适合网页展示),压缩成各种尺寸并加上网站logo水印,两天后,我写了一个通用的接口,传入图片的原始地址,水印地址并输入要生成的尺寸就可以了,给了他们一个打好的jar包。入口参数都用“中文”注释好了,可后面一直到一个月后,还是老是被问接口怎么用。2.其二,因为存储的图片很多,很大,项目组决定用分布式存储,选了Hadoop,这任务又被委派给我了,我一看,哥也没搞过啊,but,难不倒哥。上官网查文档,上google查资料,经过几天的折腾,终于把分布式集群搞好了,那个时候公司就一个运维,只会装系统搭路由,Linux系统安装和配置都是俺自己搞的,系统搞好后死活上不了网,又把机器从头到尾检查了一遍,去问运维,说我DNS地址设错了,试了好几个包括他给我的都不行,我不死心,去问运维,聊天的过程中无意间知道公司上公网是用路由过滤MAC地址的,果断让他查路由规则,我三台服务器的MAC地址没有一台在允许列表当中,oh,my god。好了,下面继续讲Hadoop,搭建好环境,写完程序接口后就把图片迁移到集群上,跑的还算稳定,就是读取文件的时候有点延迟。后来哥有事请假两天,打算回来解决延迟问题,可当我打开电脑兴冲冲的连接Hadoop时,timeout了,What the hell did they do?去问经理,说是我离开后服务器出问题了,项目组又没有人会,就把图片迁移回Apache,Hadoop集群关闭了。这尼玛!不是坑爹嘛!!!!公司“元老”们对我的到来表示非常的不欢迎,项目组两个月后就把我T出来了,让我自立门户,领导还专门关照我组建一个项目团队时刻准备为公司冲锋陷阵,这尼玛,整个团队就我一个光杆司令。以上只是技术的,一个对互联网一窍不通,对编程压根不懂的副总搞了一套CMMI作为管理手段,大会小会一个周要开三天,还有N多管理上的事情,不一而足,以至于我来两个月后就想离职走人。后来想想,就这么走了太特么懦夫了,我要组建自己的团队。于是乎招兵买马,从招聘、带人,制定项目规范、代码规范,学会了js,struts(以前做软件,没摸过这些,惭愧……),从去年年中的1个人道现在的6个人,我的项目组成型了。 好了,不扯闲话了,转入正题。我有182的身高,80kg的体重,我会一些拳击,练了五年田径,可是我从来不跟人拳脚相向。在生活里一直信奉“人不犯我,我不犯人,人若犯我,先让两个回合”的至理名言,可是今天早上上班打开邮件,我就不淡定了。 公司新推出了绩效考核,特别强调要量化量化再量化,最极品的是要量化“每周”写的代码行数。其实呢,大家都懂的,工作上按时把工作计划里的工作完成,保证正常上线,其实就OK了。可这位副总,不懂不说,还特别不信任员工,不舍得权力下放。不知道去进行内部团队的构建工作,偏爱相信外面什么培训老师,今天早上,竟然在邮件里,赫然把外面老师考核项写在绩效模板里,还占了20%的比重。一个根本不在公司,没和项目组成员进行沟通交流,连我们做什么项目都不知道的所谓“老师”,竟然要给我们绩效考核的“工作能力”和计划能力打分,真是奇葩啊!!此邮件一出,“和珅”们拍手叫好,高呼领导英明,坚定的站在公司领导这边坚决执行新规定;“农奴”和“大牛”们依然摆出关我屁事的姿态,只是农奴看书的时候把头埋的更低了,大牛们在写代码的间隙,会抬头眺望窗外,若有所思。作为不服管教的一撮人,自然是强烈的反对,再联想来了一年了,公司对加薪一事只有书面提过,CMMI文档还躺在SVN里。我觉得快要达到爆发的临界值。其实,我们程序猿都是很善良的,真的为了公司的项目可以整日加班,挑灯夜战,只是,时间长了,付出和回报不成正比,心也就冷了。俺带人时间不长,不过也总结了一些方法和道理,雕虫小技,众位莫笑。1.团队要规范: 从项目使用工具到代码规范,最好统一,有利于项目集成和维护。一个项目立项到结项,编码、测试、日志、监控、文档……,每个环节都很重要,关系着项目质量和进度,从这些环节抓规范,建立起一套良性体系,不论是对于成员还是项目本身,都是好处多多的。在项目组不忙的时候,适时的安排一些项目组会用到的技术进行钻研,写成文档并做简短的培训分享,对技术总结,口头表达和书面总结能力的提升都是有益处的。2.成员管理: 对于新手,要用正确的方法积极引导,鼓励他们多动手,不要埋头看书,毕竟看书和实际写代码差别还是很大的,每次带新人我都战战兢兢,一开始的习惯很可能影响到他们今后职业生涯,每每想到这点,肩上压力倍增。对于老手,要善于发挥他们的长处,以此带动项目组其他成员,共同进步。平时要多关心了解组员,让他们觉得项目组就像家一样,大家都是兄弟,在攻坚克难的时候,这种团结有爱的环境对于解决问题有奇效。在公司损害到成员利益的时候要坚决和成员站在统一战线。3.工作流程: 编程是一件需要专注去做的事情,所以在日常工作中,在不影响项目进度的情况下,流程越简单越好,繁杂不合理的流程会让项目进度严重拖延,且打击团队士气。4.对于公司: 真的希望有些对这个行业不懂的老总能看到,不要再用你的一家之见来做出错误的管理决定,残害手下的员工了。这个行业和传统行业不同,不是请几个讲师就可以把公司管理好的,那是狗屁。每年请讲师花几万,从里面拿出一部分奖励给工作出色的员工,效果要好的多。而且我们这个群体非常善良,你不提加薪,我们很多时候都不好意思提,真的。可是程序员也是人,人心易冷,那些新人累死累活工作一年多,还拿着两千露头的工资,每天还在喊着让他们加班赶进度,可能吗,对了,现在加班费都没,晚上加班连晚饭都不提供一顿,我只能呵呵?即使你把人留在办公室,心早已不在了。今天牢骚到这里吧,只要我在公司一天,就不能让这些不合理的东西影响到我的组员,我会战斗到底。最后,最近研究学习Swing,得到园子里不少大牛(不加引号的哦)的帮助,俺心里十分感激,等俺学成归来,一定出个专辑,好好报答各位园友。 多谢各位建议,小弟俺现在待遇还不错(算是嫡系优待吧),只是看不惯那些“和珅”党,并试图找出自己的管理之道作为对公司乱搬乱套管理模式的回击,毕竟手下还有六七个人,我走了就真的没人带这些兄弟了,他们也不会自己争取利益,真的是很善良的小兄弟,所以在我吃饱喝足的情况下,不能让兄弟们挨饿受气。
程序员需要学些什么?
程序员的岗位需求很多,例如大型网络公司、软件开发公司等等都需要程序员。
程序员需要学习:
1、掌握数据及其转换、数据的机内表示、算术和逻辑运算,以及相关的应用数学基础知识;
2、理解计算机的组成以及各主要部件的性能指标;
3、掌握操作系统、程序设计语言的基础知识;
4、熟练掌握计算机常用办公软件的基本操作方法;
5、熟练掌握基本数据结构和常用算法;
6、熟练掌握C程序设计语言,以及C++、Java、Visual Basic中的一种程序设计语言;
7、熟悉数据库、网络和多媒体的基础知识;
8、掌握软件工程的基础知识,了解软件过程基本知识、软件开发项目管理的常识;
9、了解常用信息技术标准、安全性,以及有关法律、法规的基本知识;
10、了解信息化、计算机应用的基础知识;
11、正确阅读和理解计算机领域的简单英文资料。
程序员必备技能:
1、熟练开发工具
做为一名程序员至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用C/C++编写。
而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在,而JAVA即其相关的技术集JAVAOne很可能会成为未来的主流开发工具之一。
其次,能掌握一种简便的可视化开发工具,如VB,PowerBuilder,Delphi,CBuilder,则更好,这些开发工具减小了开发难度,并能够强化程序员对象模型的概念。
另外,需要掌握基本的脚本语言,如shell,perl等,至少能读懂这些脚本代码。
2、熟知数据库
作为程序员,他们自然有自己的理由:很多应用程序都是以数据库的数据为中心,而数据库的产品也有不少,其中关系型数据库仍是主流形式,所以程序员至少熟练掌握一两种数据库,对关系型数据库的关键元素要非常清楚,要熟练掌握SQL的基本语法。
虽然很多数据库产品提供了可视化的数据库管理工具,但SQL是基础,是通用的数据库操作方法。如果没有机会接触商业数据库系统,可以使用免费的数据库产品是一个不错的选择,如mySQL,Postgres等。
3、了解操作系统
当前主流的操作系统是Windows,Linux/Unix,熟练地使用这些操作系统是必须的,但只有这些还远远不够。
要想成为一个真正的编程高手,需要深入了解操作系统,了解它的内存管理机制、进程/线程调度、信号、内核对象、系统调用、协议栈实现等。
Linux作为开发源码的操作系统,是一个很好的学习平台,Linux几乎具备了所有现代操作系统的特征。虽然Windows系统的内核实现机制的资料较少,但通过互联网还是能获取不少资料。懂得网络协议TCP/IP。
在互联网如此普及的今天,如果您还没有对互联网的支撑协议TCP/IP协议栈有很好的掌握,就需要迅速补上这一课,网络技术已改变了软件运行的模式。
从最早的客户/服务器结构,到今天的WEBServices,再到未来的网格计算,这一切都离不开以TCP/IP协议栈为基础的网络协议支持,深入掌握TCP/IP协议是非常必要的。
至少,需要了解ISO七层协议模型,IP/UDP/TCP/HTTP等常用协议的原理和三次握手机制。
4、明白DCOM/CORBA/XML/WEBServices存在的意义
随着技术的发展,软件与网络的无缝结合是必然趋势,软件系统的位置无关性是未来计算模式的重要特征之一,DCOM/CORBA是当前两大主流的分布计算的中间平台,DCOM是微软COM(组件对象模型)的扩展,而CORBA是OMG支持的规范。
XML/WebServices重要性不言而喻,XML以其结构化的表示方法和超强的表达能力被喻为互联网上的“世界语”,是分布式计算的基石之一。
5、不要将软件工程与CMM分开
大型软件系统的开发中,工程化的开发控制取代个人英雄主义,成为软件系统成功的保证,一个编程高手并不一定是一个优秀的程序员。
一个优秀的程序员是将出色的编程能力和开发技巧同严格的软件工程思想有机结合,编程只是软件生命周期中的其中一环,优秀的程序员应该掌握软件开发各个阶段的基本技能。
如市场分析,可行性分析,需求分析,结构设计,详细设计,软件测试等。
6、需求理解能力
程序员要能正确理解任务单中描述的需求。在这里要明确一点,程序员不仅仅要注意到软件的功能需求,还应注意软件的性能需求。
要能正确评估自己的模块对整个项目中的影响及潜在的威胁,如果有着两到三年项目经验的熟练程序员对这一点没有体会的话,只能说明他或许是认真工作过,但是没有用心工作。
7、模块化思维能力
作为一个优秀的程序员,他的思想不能局限在当前的工作任务里面,要想想看自己写的模块是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直接使用。
这样做可以使代码能重复利用,减少重复的劳动,也能使系统结构越趋合理。模块化思维能力的提高是一个程序员的技术水平提高的一项重要指标。
就业方向:
1、网络开发
现在网络已经成为世界通讯的一座桥梁,好像Javascript、PHP、Ruby这几类开发语言大部分是用作网络开发方面。
2、企业软件开发
JAVA、C#、VB这几类开发语言都实现了面向对象开发的目标,更多时候用于企业系统的开发。
3、系统软件
C语言、C++、Object-C这些软件更多是用在系统软件开发,嵌入式开发的方面。
当然,这分类不是绝对,像JAVA、C#、VB很多时候也用于动态网站的开发。在很开发项目都会使用集成开发的方式,同一个项目里面使用多种开发语言,各展所长,同步开发。
但所以在刚入门的时候,建议先为自己选择一种合适的开发工具,“专注地投入学习,全力一击”。
扩展资料:
会编程、会计算机语言就能加入互联网发展大潮中,享受数字经济发展的红利,一时间社会上的程序员培训机构都变得格外火爆。
但是现在,专家的数据分析结果告诉你:若想跟上数字经济发展的步伐,光会编程可不行,这个行业现在紧缺高端的、综合型人才。
11月22日下午,清华大学经管学院互联网发展与治理研究中心与领英联合发布《中国经济的数字化转型:人才与就业》,揭示我国数字人才现状与趋势。
报告显示我国数字经济发展面临人才短缺的挑战,但这种短缺主要体现在拥有中高级专业技能数字人才的比例不高,拥有人工智能、智能制造等前沿技术的人才更是少之又少。
与美国、英国、加拿大等国家相比,中国的数字人才储备尚有很大差距。
此外,报告根据对人才需求的数据分析,结果显示我国数字人才的技能需求不再强调单一编程技能,更加看重技术、管理和领导力等综合技能。
2015年,我国从事信息传输、软件和信息技术服务相关工作的人数约350万,但其中中高端人才,特别是前沿技术的数字人才并不多。根据领英中国智库的研究,在人工智能领域,美国的从业者数量在85万人以上,印度15万,英国14万,中国只有5万多人。
报告负责人、清华大学经济管理学院副院长陈煜波教授表示,我国目前在大数据与人工智能领域人才缺口明显。
他解释说,目前中国85%以上的数字人才分布在产品研发类,而深度分析、先进制造、数字营销等职能的人才加起来只有不到5%,存在较大缺口,新兴技术人才和创新型人才培养方面存在滞后和不足。
这份研究报告的基础数据来自领英在中国的3600万个人用户,这些用户毕业于1.5万多所国内外院校,分布在36.4万家企业,拥有超过2.3万项技能。
陈煜波研究团队从中筛选了72万数字人才,多维度提取用户画像并跟踪其职业轨迹,以此预测不同地区的人才流向、雇佣率、受雇主欢迎的技能等人才趋势层面的信息。
陈煜波说,根据数据分析结果,整体来看,虽然编程技能和数据分析技能需求占据主导,然而随着数字产业走向成熟,企业除了强调编程技能,也逐步更加看重人才的技术、管理和领导力等综合技能。
近年间,项目管理、产品运营等“技术+管理”类技能的需求呈现出明显的上升趋势,懂技术、懂管理的人才被认为是“一将难求”。
领英中国代理总裁曾志恒也提醒,如果你有兴趣向数字职能转型,不能仅仅专注于自己的技术能力,沟通和领导力等软性技能将成为你脱颖而出的关键。
陈煜波希望这些研究结果能为教育行业和政府部门提供借鉴。他说,教育行业可根据职位的供需趋势更好地规划人才培养的方向,政府也可更好地了解人才流动方向、技术缺口等,以此制定有针对性的引才策略。
程序员岗位职责:
1、对项目经理负责,负责软件项目的详细设计、编码和内部测试的组织实施,对小型软件项目兼任系统分析工作,完成分配项目的实施和技术支持工作。
2、协助项目经理和相关人员同客户进行沟通,保持良好的客户关系。
3、参与需求调研、项目可行性分析、技术可行性分析和需求分析。
4、熟悉并熟练掌握交付软件部开发的软件项目的相关软件技术。
5、负责向项目经理及时反馈软件开发中的情况,并根据实际情况提出改进建议。
6、参与软件开发和维护过程中重大技术问题的解决,参与软件首次安装调试、数据割接、用户培训和项目推广。
7、负责相关技术文档的拟订。
8、负责对业务领域内的技术发展动态进行分析研究。
相关书籍:
很多程序员响应,他们在推荐时也写下自己的评语。 以前就有国内网友介绍这个程序员书单,不过都是推荐数 Top 9的书。
其实除了前9本之外,推荐数前30左右的书籍都算经典,笔者整理编译这个问答贴,同时摘译部分推荐人的评语。
下面就按照各本书的推荐数排列。
1、《代码大全》 史蒂夫·迈克康奈尔
2、《程序员修炼之道》
3、《计算机程序的构造和解释》
4、《算法导论》
5、《重构:改善既有代码的设计》
6、《设计模式》
7、《人月神话》
8、《计算机程序设计艺术》
9、《编译原理》(龙书)
10、《活着》
参考资料:百度百科-程序员
参考资料:人民网-会编程就能当码农? 行业紧缺高端、综合型人才
现在程序员一个月的工资大概多少?
看你找什么公司,以及你技能到底有多强。
如果是大公司,一般程序员到手至少上万吧,上不封顶,看你能力
小公司也不是不能赚钱,还是看你能力,如果是业务骨干,一个月几万块也不是不可能。
关键要能力强。
能力不强的,几千块的也有可能。
有用请采纳。
学软件后真的就只可做程序员吗?
学习软件使用和程序开发是两码事,学软件了你就会如何使用那个软件,但那个软件内部的编程那就复杂多了。
打个比方,很多人都会用微软的office软件(就是word\excel\powerpoint等),但是里边的程序很多人就不知道了,那是很专业的东西了。
所谓的程序员就看你做什么程序了,简单的程序自己学学都会,比如用c语言编个小程序啥的,但是真正的做软件开发那就得经过一定的学习积累了,并非那么简单的。
当然,如果你现在就学的软件开发的话,以后也不一定就是做程序员嘛,我学经济信息管理的,2000年毕业,可是现在我们班的同学做什么都有,人力资源管理的、在华为做软件开发的、做公务员的、银行职员的、房地产项目管理的、在销售公司做管理的、....什么都有的,所以学的专业东西以后不一定就是仅仅做自己所学专业的东西,就看你个人怎么发展了。
转载请注明出处51数据库 » 程序员如何管理软件 如何成为一个程序员