❶ 你为什么会成为了一个程序员
最开始是因为计算机上面可以玩游戏,后来觉得使用计算机很酷,从无到有创造的过程很神圣而且很帅,义无反顾地报考了计算机专业,工作后,在编码的过程中痛并快乐着,会得越多,越觉得有趣,觉得选择这个职业很靠谱,写代码的感觉很幸福。
❷ 某男淫,会写诗的程序员,但是竟会做龌龊的事。。
您的逻辑有问题,文采好不等于人品好,你接触到的那个要把你拉上床的男人才是真正的他,靠着各种方式勾搭女人的男人多了,你碰到的只不过是一个文章写的略好的,如果你连这个都想不通的话又怎么去体会一篇真正好文章里的思想呢?
❸ 成为程序员(或码农)有哪些方面的要求
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
❹ 要当程序员 需要会哪几种语言
信息技术的更新速度是惊人的,程序员的职业生涯则是一个要求不断学习的过程,永远不能固步自封。本人在工作期间曾看见过很多程序员只要有闲暇时间就浏览一些没有太大作用的网页,在网上聊天,打游戏,浪费了大量的时间,十分不可取。而另外一种情况是,IT技术的日新月异使很多程序员眼花缭乱,什么都想学,却又不知从何学起,今天看看这个,明天学学那个,贪多不熟。
虽然IT技术发展迅速,但很多技术都是有规律可循,一些基本的概念、原理和方法还很通用,可以举一反三。本人根据自己的体会和经验,向那些刚刚踏入IT行业的新程序员们或正在迷茫的程序员们推荐程序员必须掌握的七种武器,有了这七种武器,虽不敢说笑傲江湖,但将自己立于不败之地还是可以的。
第一种武器:开发工具
至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是我重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用C/C++编写。而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在,而本人对SUN公司的“网络即计算机”的概念相当欣赏,并相信JAVA即其相关的技术集JAVA One会成为未来的主流开发工具之一。其次,如果能掌握一种简便的可视化开发工具,如VB,PowerBuilder,Delphi,C++ Builder,则更好,这些开发工具减小了开发难度,并能够强化程序员对象模型的概念。另外,需要掌握基本的脚本语言,如shell,perl等,至少能读懂这些脚本代码。
第二种武器:数据库
为什么数据库是如此重要?很多应用程序都是以数据库的数据为中心,而数据库的产品也有不少,其中关系型数据库仍是主流形式,所以程序员至少熟练掌握一两种数据库,对关系型数据库的关键元素要非常清楚,要熟练掌握SQL的基本语法。虽然很多数据库产品提供了可视化的数据库管理工具,但SQL是基础,是通用的数据库操作方法。如果没有机会接触商业数据库系统,可以使用免费的数据库产品是一个不错的选择,如mySQL, Postgres等。
第三种武器:操作系统
当前主流的操作系统是Windows,Linux/Unix,熟练地使用这些操作系统是必须的,但只有这些还远远不够。要想成为一个真正的编程高手,需要深入了解操作系统,了解它的内存管理机制、进程/线程调度、信号、内核对象、系统调用、协议栈实现等。Linux作为开发源码的操作系统,是一个很好的学习平台,Linux几乎具备了所有现代操作系统的特征。虽然Windows系统的内核实现机制的资料较少,但通过互联网还是能获取不少资料。只有对操作系统有一定的了解后,你会发现自己上了一个新的台阶。
第四种武器:网络协议TCP/IP
在互联网如此普及的今天,如果您还没有对互联网的支撑协议TCP/IP协议栈有很好的掌握,就需要迅速补上这一课,网络技术已改变了软件运行的模式,从最早的客户/服务器结构,到今天的WEB Services,再到未来的网格计算,这一切都离不开以TCP/IP协议栈为基础的网络协议支持,所以,深入掌握TCP/IP协议是非常必要的。至少,你需要了解ISO七层协议模型,IP/UDP/TCP/HTTP等常用协议的原理和三次握手机制。
第五种武器:DCOM/CORBA/XML/WEB Services
随着技术的发展,软件与网络的无缝结合是必然趋势,软件系统的位置无关性是未来计算模式的重要特征之一,DCOM/CORBA是当前两大主流的分布计算的中间件平台,DCOM是微软COM(组件对象模型)的扩展,而CORBA是OMG支持的规范。程序员需要做的不仅仅是利用商业的开发平台来开发软件,而是要理解这些技术的初衷,即为什么需要这项技术,如果你能理解了这一点,再回头看这些技术的具体实现,就如庖丁解牛,迎刃而解。XML/WebServices重要性不言而喻,XML以其结构化的表示方法和超强的表达能力被喻为互联网上的“世界语”,是分布计算的基石之一。
第六种武器:软件工程与CMM
现代大型软件系统的开发中,工程化的开发控制取代个人英雄主义,成为软件系统成功的保证,一个编程高手并不一定是一个优秀的程序员,一个优秀的程序员是将出色的编程能力和开发技巧同严格的软件工程思想有机结合,编程只是软件生命周期中的其中一环,优秀的程序员应该掌握软件开发各个阶段的基本技能,如市场分析,可行性分析,需求分析,结构设计,详细设计,软件测试等。一句话可以概括我的看法:“创意无限,流程保证”。
第七种武器:强烈的好奇心
什么才是一个程序员的终极武器呢,那就是强烈的好奇心和学习精神。没有比强烈的好奇心和学习精神更好的武器了,它是程序员们永攀高峰的源泉和动力所在。
❺ 好的程序员到底好在哪里
我这些年和许多程序员工作过——他们有些人超级棒,有些明显比较平常。因为我近来和一些熟练的程序员工作的很愉快,我花了一些时间考虑我羡慕他们什么。是什么让一个好的程序员那么好,差的程序员那么差?或者,简短一些,是什么让一个好的程序员那么好呢?
根据我的经验,成为一个优秀的程序员与年龄、教育或者你挣钱的多少没有关系。关键在于你的表现,更深刻的说,是你如何思考。我注意到我羡慕的程序员有一致的习惯,比起他们所选语言的知识、对数据结构和算法的深入理解、或者几年的工作经验——更多的是他们交流的方式,管理自己的方式,和根据他们精湛的技巧可以知道他们接触编程的方法很有意义。
当然,成为一个好的程序员需要的比任何人可以列举的都还要多,我不会基于这些实践的存在(或者缺失)而单独评判任何程序员。但当我看到时我确实能明确的知道,当我看到一个具有这些性格的程序员时,我会想,“这个人真的知道他们在做什么。”
他们做研究
或者称作“三思而后行”,或者称作“谷歌一下”。
无论你怎么称呼它,你可能遇到的大多数编程问题几乎在一定形式上都已经被解决了。传道书早就记录在案,阳光底下无新事。在GitHub上的库文件列表中,在因特网上的博客中,或者恰好与某个人经验交流中,好的程序员知道要在解决一个问题之前先做研究。
我曾经见过伟大的程序员急于给出解决方案,但是我曾经一起工作过的最糟糕的程序员,从来不咨询他人,从而导致做了大量的重复性工作或者恰好使用了错误方式来解决问题。于是很不幸的,他们最终为他们的错误付出代价。
读错误信息(并以之行事)
这包括对堆栈追踪的符号解析。是的,令人厌恶而且不幸——但如果你不愿意这么做,怎么知道哪里出错了?我知道的最高效的程序员不害怕深入挖掘问题。最低效的程序员看到错误甚至都不愿读错误信息。(这听起来挺可笑的,但我遇到的频率会让你吃惊。)
更进一步说,伟大的程序员看到问题,会急迫的去解决它。对于他们来说,读错误信息仅仅是第一步;他们渴望深入问题并找出错误的根源。他们对推卸责任没有兴趣,他们对找到解决方案有兴趣。问题确实在他们这里止步。
他们会去看源代码
文档,测试和人:这些都可能会说谎。未必是故意撒谎,但是如果你想确切的知道代码是怎么工作的,你就必须亲自察看源代码。
即使这不是你非常熟悉的语言也不要害怕——比如,如果你主要是一个Ruby程序员并且你怀疑Ruby的C语言包里有错误,那就去解压它看看再说。不错,你可能会一无所获。但是谁知道呢,你也可能会找到问题所在,比起什么都不做,你至少选择了一条更有机会的路。
如果你工作在一个非开源的环境中,就不太好办了,这很不幸,不过道理是不变的。糟糕的程序员对查看源码通常没有太多兴趣,结果就是,跟那些愿意去研究一下源码的人相比,他们通常会被这些问题困扰的更久。
他们说做就做
好的程序员总是趋向于采取行动。他们似乎有种控制不住的强迫性——一旦他们确认了一个问题或者看到了一个新的特性需求,就会立即着手解决,有时甚至过早或者过于勇往直前。他们遇到问题的直觉反应就是正面解决它。
有时这会带来麻烦——但是他们的热情正是他们能够做的很好的关键因素。当某些人还在拖延回避或者幻想问题能自己消失的时候,好的程序员已经开始动手了。
更简单的来说(也许,太过直白),如果你看到一个人兴奋的发现并处理问题,很有可能你得到了一名好程序员。
他们防患未然
这可能是一个坏的程序员的特征——他们总是纠缠于一个又一个的人为失误,从来都是没有明白上一个就转向下一个。他们总是在抱怨他们程序中的错误部分,却耗费数小时对完美运行的代码来debug。他们让情绪占据主动,相信直觉而不是仔细明确的分析。
如果你突然遇到一个问题——或者每一个问题看起来都像是世界末日一般,你极有可能是在犯错误而不是在解决潜在的问题。伟大的程序员会花费一些时间来了解是什么出了错,哪怕是真的是一场灾难,除了这些,他们还会把常出现的问题当成分配任务来处理掉。由于他们能更精确的解决大部分问题,从而不会提高你的团队的紧张程度。
他们善于交流
说到底,编程也是一种交流的方式。能够简洁明了地表达出你的观点之于写代码就如其之于写诗一样重要——长久以来,我发现那些能够写出精炼的电子邮件、优雅的报告或者仅仅是高效的备忘录的人通常也会是更优秀的程序员。
这个发现对写程序和对英语一样使用。当然,把充斥着括号和只用一个字母命名的函数写在一行里面也是可以的,但是如果没有人能够理解你写的代码,又有什么意义呢?无论使用什么媒介,优秀的程序员会把时间花在如何将他们的观点更好地表达出来上面。
他们激情四射
我想这是最能够体现一个好的程序员的地方(并且,不仅在计算机行业,这点适用于任何行业)。
如果你真正关心你做的东西——不只是把它当做一个工作去应付,而是一个兴趣、一件对你有着莫大魅力的事情,那么在这个行业里,相较于其他人而言,你就拥有了一项巨大的优势。好的程序员会一直保持着写代码的状态,他们每天花在这个行业里的时间都不低于8个小时——包括工作和空余时间。在编写项目和授业解惑两者之间,他们不会偏向任何一方。他们不会只是为了搞清楚某个东西的工作原理而整天痴迷于新技术或新的编程语言。
当我观察一个周日正在做自己感兴趣的项目、在创造自己需要的工具、被新的、有趣的事物吸引的程序员的时候,我意识到我正在观察一个会令所有人都不由自主心生敬意的人。最后,伟大的程序员不会将他们的专业看做赚钱的工具,而是一种改变世界的手段。我想这就是早就一个伟大程序员的真正原因吧。编程,对于他们来说也就意味着创造世界。也只有这样的人,才值得我们由衷地敬佩和景仰。
❻ 程序员如何用代码写一首诗
你需要编写一个类,里面要列举出动名词搭配等等之类的语法,还要限制字数,标点符号的添加等等,然后再用主函数去调用,让其随机生成一首诗。
❼ 对于程序员来说,他们写代码是一件快乐的事情吗
对于程序员来说,他们写代码是一件快乐的事情吗?
人们因工作而异取决于工作,它是由环境耗尽的,最后时间充满了浪费。当然,我不开心,我一直在想技术职业,我只有足够的技能。但终于发现占领中没有多少语言技术。更多,更多,您必须了解由公司编写的现有框架,以及不受欢迎的框架,它真的看着头疼。每当我想改变事情时,当我看到一堆腐烂的摊位时,我非常不开心,我认为我有一些事情要做。我不开心,然后我必须了解一些人类事故,学会后学习过一些学生,非常疲惫的社会技术,还有一些固有的行业和其他琐碎的故障,它真的不开心,但沉浸在逻辑思维中,不要考虑那些非常厌恶的人。没有强大的事情。当你眨眼睛时。然后做到这一点,当你吃饭时,我觉得很满足,我很开心。
所以,对自己没有后悔的程序员,你将长时间继续你的计划职业生涯。
❽ 怎么用电脑做出诗
你好,
电脑只是一个执行操作的工具,写诗的事还是要人自己去做。
如果就是需要电脑去完成写诗的创作,那必须要程序员将诗人的思维和风格,以计算机语言方式写成程序输入,让计算机执行这样的程序,完成写诗的操作。
❾ 在你看来,编程如写诗,你有什么看法
写诗是中华民族的传统文化,当时的诗歌使我们发现中华文字的博大精深。
❿ 写诗软件的诗歌技术
这种“写诗软件”写出何种风格的“诗歌”是由程序在编写之初的设置所决定的。在设计此类程序时,把所需的文字词语作为关键词储存到词库中,程序通过录入的条件(段落、行数、韵脚等)规定程序实现的通用业务逻辑,经过随意组合装载呈现出最后的运行结果。这里的通用业务逻辑一般即尾字的末音及词语的连贯性关系的过滤筛查。
因为诗歌一般需要平仄押韵,这个可从编写程序时“拼音”那一项进行限制,至于词语搭配,可以在编程时设定词库,根据大家的搜索经验,进行语义匹配即可。
如果按照古典诗词的格律设置程序运行规则的话,这类软件同样可以写出“古典诗歌”。但因为精通古诗格律的程序员比较少,他们制定程序规则就较难。 “写诗软件”:让文学变成技术
诗歌和技术是对立的两面,应该尊重诗歌艺术本身的艺术和思想的特点,不能把诗歌语言当作是一种能够被操纵、被控制的技术工具。不可否认,这个“写诗软件”,就是这样的一个诗歌思想、诗歌语言和艺术表现形式被操纵、被控制的技术工具。
当今社会已处于一个技术的世界。而“写诗软件”的出现,正表明了技术无处不在的现实,不仅我们的生活受到这种技术的影响和作用,作为精神现象的文学艺术,也受到了它的制约和对抗。
无疑,“写诗软件”的流行,似乎是“创造”了一种新的诗歌写作手法和形式技巧,提出了一种诗歌技术的概念,改变了我们过去那些关于诗歌写作的艺术思想和理念,这需要我们对传统的诗歌艺术创作思想和手法,做出重新的判断和审视。这种科技对诗歌创作艺术的冲击和挑战,也许是我们发展当代中国诗歌艺术的一种契机。但是,技术化的诗歌写作,与诗歌艺术的美学本质原则毕竟是不同的。
“写诗软件”这种技术化写作,实际上是创作主体的技术活动代替了审美活动,技术思想取代了审美思想,技术意识超越了生命意识,它遵循的是一套技术的美学,创作主体是按照一种技术思想的程序去思考诗歌作品的生产和创作的,它把技术性的思维扩展和延伸到诗歌艺术的写作中,诗歌所诉求的思想、描写的意象、展开的意境联想、语言的使用和形式段落的安排,都被纳入了一套技术化的程序之中。