程序设计语言是学习计算机的重要组成部分。首先声明,我这里不会对任何两种语言作对比,也不会评价哪个语言怎么样,仅仅是谈谈我在学习过程中的一些感受。
很多人对语言有着一定的宗教情节,一般来说是第一种语言或者花时间最多的语言。就像很多人总是对初恋恋恋不忘一样,同样第一门语言也难以忘怀,不管记忆是美好的还是痛苦的,不管是享受还是受虐。最终的结果也无外乎几种,相守相伴大半生,或者只是匆匆过客另寻新欢,或者爱太痛,最终想爱不敢爱。我想大多数人的第一门编程语言会是C/C++,显然她并不是一个很温顺而任人摆布的人,当然如果你足够强大足够魅力的话就另当别论。在这其中很多人会找到自己的真爱,而可能有很大部分的人会感觉不会再爱了。像张小娴写的,在对的时间,遇见对的人,是一种幸福;在对的时间,遇见错的人,是一种悲伤;在错的时间,遇见对的人,是一声叹息 在错的时间,遇见错的人,是一种无奈。也许是本来就是错的人,又或许只是时间不对。对于刚上大学的很多学生之前除了上网聊天看电影打游戏外基本没多少接触计算机,对编程更是知之甚少。对于编程语言来说,有的是对计算机更亲近 更友好,就如C/C++,而有的对人类更亲近更友好,如Ruby,Python。因此对于之前基础知识缺乏的人来说,这个时间显然是不对的。
但是,现实生活中一见钟情并不是大多数,感情是可以慢慢培养的,当你对一个人充分了解和熟悉后或许你会对其态度有很大的转变,当然也不排除更加坚定你当初的想法。因此很多人开始去了解C/C++的全部,了解其过去,了解其成长经历,了解她的好,也了解她的小脾气。于是你慢慢发现原来她是这么温顺还带一些可爱,她发脾气只是因为你不够了解她惹她生气了。当然她也不会是完美的,因为她就像某一群体的人一样,是不允许有错的,错都是你犯得。但程序始终只是程序,不要因此指望程序员会在生活中仍然认为错都是自己犯的,总会能发现自己的不足。
同样我学的第一门语言是C++,大一的时候这一门课本来是没开的,但是发了一本书,是我们院老师自己编的《C++程序设计》。受好奇心的驱使,就翻翻看,然后就在网上搜搜,发现这个东西虽然看起来不能吃,但是很厉害的样子。在网上的推荐下,在图书馆借了本《易学C++》回去,在寒假时候看了看,同时也试着运行书上的例子。最开始的时候以为只要看完了就应该可以自己搞个什么软件了吧,估计很多同学当初有和我一样的看法,认为编程就得要弄出个图形界面什么的。最后直至书看完了,也没发现有这么个东西,这个时候就有点失望加迷茫了啊,到底要怎么才能弄出那个东西了(很多同学是不是也想过)。于是去网上搜啊搜,就看到些关于Windows编程啊或者MFC之类的东西,但同时也看到说学C++和用C++做GUI编程不是一回事,学好C++才是王道。后来借了一些C++方面的书来看,比如老大Bjarne Stroustrup写的《C++程序设计语言》啊,虽然不大看的懂,但也在迷迷糊糊的看。那时候存在一种错误的倾向,把大量时间用来关注其语法细节,而不是用其来完成一些事情,导致的结果就是学了很久,虽然也考了个二级,但我深知我的水平仍然停留在HelloWorld级别。因此这个学期选了C++的课,打算经过系统训练来达到提高自己水平的目的。借用一句话,C++虐我千百遍,我待C++如初恋。
大二时候突发奇想,买了本《Head first Java》来看,说实话这本书比较二(想知为什么自己去搜),而且讲的也不太系统,但仍不可否认这是一本入门级的好书。看着书上的讲解和运行着书上的事例,也或多或少对Java有一点了解,但我觉得收获最多的是,自己终于知道GUI编程是个什么东西了。同样借用一句话,Java很优雅,但我却并没有继续深入,一个原因是半期过后作业铺天盖地而来,一个是我还是喜欢学C++,毕竟得有始有终啊。
因为特别原因在一个小广告公司上过几天班,学了点Photoshop,当时足以应付公司的需求了。说明一下,这个当然不是我水平高,而是他们的业务需求不高。其中两个难点我一直没有突破,一个是特效,一个是鼠绘,所以我只是一个会简简单单使用工具完成一些小需求而已,毕竟昵图网还是有很多资源只要花少量人民币就可以轻松拥有。当然上班时候这方面的技术需求少了,你就的干点别的,于是就的使用写真机,喷绘机,亲自操作,独立完成。在这过程中也懂了点油墨色彩什么的。大二时,同宿舍的同学上了网页方面的课。于是有着攻城师梦想且早已深知HTML是必备技能的我,眼看时机成熟就开始学,因为刚开学,没有太多任务,可以自由安排。
于是又去图书馆借了本书《深入浅出HTML》,说实话,我智商真心不高,刚开始的时候看的不是太懂,加上我的好读书不求甚解的精神。但是慢慢的还是有所了解了,知道网页的三个主要组成部分,HTML、CSS、JavaScript。学完HTML,又看《CSS基础教程》,最后马马虎虎完成了一个课程作业,是真的马虎,没有谦虚。然后又去开始找JavaScript方面的书,刚开始的书感觉都不大适合我这样的初学者。就像我看《Python基础教程》的时候一头雾水一样,当然可能是我水平有限,而无关翻译或是原书的问题。后来找到本《循序渐进Javascript》,李强翻译(李强翻译过《JavaScript The Definitive Guide》第5版,第六版是淘宝UED翻译的)。看完《循序渐进Javascript》对JavaScript有了点了解,于是又买了本《JavaScript DOM 编程艺术》,看完后对DOM有了一定了解。接着看《JavaScript高级程序设计》有了更深刻的了解,当然接下来还看了一些书,就不一一列举。我也明白书看的再多,不如实践来的深刻。我的桌子上还躺着《JavaScript The Definitive Guide》最新影印版等着我完成了。
不得不说一下我对JavaScript的一些看法,我觉得和PHP有一些相似,都是一个从屌丝到高富帅的逆袭过程。而且JavaScript毫无疑问已经是浏览器平台的霸主,其已经是目前浏览器端唯一的编程语言。而目前由于Node.js的出现,在服务器端也是独树一帜。当然也可以跑在Java虚拟机上了。
很多人对JavaScript有一些误解,一个常见的是关于和Java的,有的说毫无关系,有的认为是其子集(这个错的离谱)。其实《JavaScript The Definitive Guide》已经说的很清楚,JavaScript语法源于Java(在设计时候也要求让其看起来像Java),其函数式编程来自Scheme(Lisp的主要方言之一),其基于原型的继承方式来自Self。JavaScript中不太好的特性比较多,而且很多东西比较迷惑人,但总体来说,是很容易上手的。
因此我现在觉得学编程的比较好的方式是从HTMl+CSS+JavaScript开始。然后再学习一些较底层的语言或者其他语言,有很多人推荐从Ruby或是Python开始,我也觉得挺好;也有很多人推荐从函数式语言开始,但我对函数式语言不了解,《计算机程序的构造和解释》也只是翻了几页,所知的只是JavaScript中的那些。
PHP也学过一点,跟着书上例子实现过,但总体来说,也是HelloWorld水平。然后Ruby最近看了点,我很喜欢,打算好好学习,因为我喜欢web方向,也想研究下Rails。
不得不说,以上的过程正好是在暴露我的缺点,什么都想去玩一下,到最后什么都不会,但幸好我最终还是发现了这一点,而且以前想学的东西都了解过了,就不再像当初那样什么都想玩一下。而且现在招聘更看重基础能力,算法、数据结构,计算机网络,操作系统等等之类的。因此修炼内功才是关键,也玩够了,该定下来了。当然最重要的是,我希望这些话不只是说说而已,而是必须付诸实践。路已经选择,能做的是怎么走的更好。
路漫漫其修远兮。
分享到:
相关推荐
1. 课程任务 单词记忆测试程序设计 2. 课程要求 设计一个以单片机为核心的单词记忆测试器;能实现单词的录入;单词用按 键控制一次在屏幕上显示;按键选择认识还是不认识,也可以直接进入下一个或上 一个;单词背完...
单词记忆测试器程序设计单词记忆测试器程序设计
资源包含了大量的C++源代码,方便初学者使用,深入了解C++,使学习更加具象,便于理解记忆。
完整的java记忆测试程序可以直接运行。
JAVA记忆测试程序设计报告
「解」人们研制了许许多多计算机程序设计语言,其中二进制语言直接来自计算机的指令系统,与具体计算机紧密相关,所以是一种面向机器语言。面向问题语言是为了易于描述和求解某类特定领域的问题而专门设计的一种非...
第一章 程序设计语言和程序设计方法是贯穿整个程序设计过程中不可缺少的因素。 程序设计语言经历了三个发展阶段:机器语言、汇编语言、高级语言。 机器语言是计算机能执行的二进制数字的机器指令代码(由若干0和1的...
一方面,汇编语言指令是用一些具有相应含义的助忆符来表达的,所以,它要比机器语言容易掌握和运用,但另一方面,它要直接使用CPU的资源,相对高级程序设计语言来说,它又显得难掌握。 汇编语言程序归纳起来大概有...
用Java语言写的记忆测试软件程序,是进行课程设计和学习制作管理系统的好资料。
四年专业英语单词快速记忆...我们在这里总结了编程语言中常用到15类编程语言中的,编程英语单词4300多个,以后还会不断的增加,并给出了这些英语单词的快速记忆方法,“编程语言快速记忆手册”将助您十倍速的学习编程。
C#程序设计 第一章 程序设计语言和程序设计方法是贯穿整个程序设计过程中不可缺少的因素。 程序设计语言经历了三个发展阶段:机器语言、汇编语言、高级语言。 机器语言是计算机能执行的二进制数字的机器指令代码(由...
题目一 记忆测试系统 记忆测试系统通过回忆法测试记忆能力,测试手段分为初级,中级,高级,三个级别 题目二 数据库通用查询系统
对于此我想说,使用简体中文版本的软件会影响你的软件学习吗? 语言的障碍是现实存在的,语言只不过是一一对应的工具而已,编程重要的是思想,包括了算法和数据。...但是在程序语言内的逻辑绝不可能出现偏差。
本文档意在学习英语,以导图的模型来设计,能够更好的去记忆和学习英语
为了在实验室环境中测量现实生活中的前瞻记忆(PM)能力,以前的研究已经使用基于照片,基于视频和基于虚拟现实(VR)来模拟现实生活环境。 在这项研究中,我们使用功能近红外光谱(fNIRS)记录了参与者在沉浸式VR...
这是我设计的一个测试记忆力或者说某种程度上可以锻炼提高记忆力的小程序: 操作者要在规定的时间内记住窗口显示的两组数,超过一定时间后,数据会自动消失, 然后输入记下的答案,通过检查按扭来查看是否正确。
java课程设计——记忆测试系统。 记忆测试系统是通过回忆法测试记忆能力,测试手段分为初级、中级、高级三个级别。 记忆测试系统设计要求如下: 1、单击“选择级别”菜单可以选择初级、中级或高级。 2、单击“查看...
片机的程序设计语言 一.程序设计语言 这里的语言与我们通常理解的语言是有区别的它指的是为开发单片机而设计的程序语言如果 您没有学过程序设计可能不太明白我给大家简单解释一下您知道微软的VB VC 吗VB VC 就是为 ...
本程序可以将打开的文件记录起来,作为历史记录的“最近打开”列表,方便下次直接打开。支持5个打开记录,并且会自动删除其它多余的打开记录。