https://blog.csdn.net/fallenink/article/details/54292811
转载自:http://blog.csdn.net/pb09013037/article/details/41747307
简介
技术永无止境,编程方向现在越来越广了,你还在迷茫地选择方向么?
本篇将简单描述编程各个方面,以及编程之路会遇到的生活问题。
问题与解答
1、编程分为几个阶段?
高手箴言中把编程分为六个阶段:
1、熟练地使用某种语言(java)。
2、精通基于某种平台的开发(Android)。
3、深入地了解某个平台系统的底层(Android 底层)。
4、直接在平台上进行比较深层次的开发(Android NDK 开发)。
5、系统体系结构开发。
6、想啥就实现啥。
2、JAVA 技术
3、JavaScript 技术
4、C/C++ 技术
5、PHP技术
6、C#技术
7、Python技术
8、Ruby
9、Go语言
10、DLL
11、组件 控件 插件
12、框架
Java框架
php框架
13、Perl技术
14、XML
可扩展标记语言,标准通用标记语言的子集,一种用于标记电子文件使其具有结构性的标记语言。
它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。
15、CSS
它是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
CSS目前最新版本为CSS3,是能够真正做到网页表现与内容分离的一种样式设计语言。相对于传统HTML的表现而言,CSS能够对网页中的对象的位置排版进行像素级的精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力,并能够进行初步交互设计,是目前基于文本展示最优秀的表现设计语言。CSS能够根据不同使用者的理解能力,简化或者优化写法,针对各类人群,有较强的易读性。
16、HTML
标准通用标记语言下的一个应用,也是一种规范,一种标准, 它通过标记符号来标记要显示的网页中的各个部分。网页文件本身是一种文本文件,通过在文本文件中添加标记符,可以告诉浏览器如何显示其中的内容(如:文字如何处理,画面如何安排,图片如何显示等)。浏览器按顺序阅读网页文件,然后根据标记符解释和显示其标记的内容,对书写出错的标记将不指出其错误,且不停止其解释执行过程,编制者只能通过显示效果来分析出错原因和出错部位。但需要注意的是,对于不同的浏览器,对同一标记符可能会有不完全相同的解释,因而可能会有不同的显示效果。
HTML文件是可以被多种网页浏览器读取,产生网页传递各类资讯的文件。从本质上来说,Internet( 互联网)是一个由一系列传输协议和各类文档所组成的集合,html文件只是其中的一种。
HTML5是HTML下一个主要的修订版本,现在仍处于发展阶段,其实是包括HTML、CSS和JavaScript在内的一套技术组合。它希望能够减少浏览器对于需要插件的丰富性网络应用服务(plug-in-based rich internet application,RIA),如Adobe Flash、Microsoft Silverlight,与Oracle JavaFX的需求,并且提供更多能有效增强网络应用的标准集。
17、ASP
18、Delphi
19、Scala
20、Groovy
一种基于JVM(Java虚拟机)的敏捷开发语言,它结合了Python、Ruby和Smalltalk的许多强大的特性,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码。由于其运行在 JVM 上的特性,Groovy 可以使用其他 Java 语言编写的库。
用于Java虚拟机的一种敏捷的动态语言,它是一种成熟的面向对象编程语言,既可以用于面向对象编程,又可以用作纯粹的脚本语言。使用该种语言不必编写过多的代码,同时又具有闭包和动态语言中的其他特性。
应用:1、groovyShell 脚本语言运用 2、在Java中动态加载和运行Groovy代码 3、groovy 脚本引擎
21、Lua
一个小巧的脚本语言,该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
Lua脚本可以很容易的被C/C++ 代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。
应用:
Minecraft中的电脑插件
所有的为电脑和turtle(机器人)的代码都是基于Lua的,你可以用它们与有(无)线路由器、打印机、磁盘驱动器、(黄金)显示器互动。
魔兽世界插件开发
游戏脚本
22、SQL
结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。
它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。
结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。
开源项目:sqlite 一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
23、Flash
一种动画创作与应用程序开发于一身的创作软件。
Flash动画设计的三大基本功能是整个Flash动画设计知识体系中最重要、也是最基础的,包括:绘图和编辑图形、补间动画和遮罩。这是三个紧密相连的逻辑功能,并且这三个功能自Flash诞生以来就存在。
Flash广泛用于创建吸引人的应用程序,它们包含丰富的视频、声音、图形和动画。
24、WPF
微软推出的基于Windows Vista的用户界面框架,属于.NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面。
Flash广泛用于创建吸引人的应用程序,它们包含丰富的视频、声音、图形和动画。
由两个主要部分组成:引擎和编程框架:
1、Windows Presentation Foundation引擎。Windows Presentation Foundation 引擎统一了开发人员和设计人员体验文档、媒体和 UI 的方式,为基于浏览器的体验、基于窗体的应用程序、图形、视频、音频和文档提供了一个单一的运行时库。
2、Windows Presentation Foundation 框架。Windows Presentation Foundation 框架为媒体、用户界面设计和文档提供的解决方案远远超过开发人员现在所拥有的。
25、Shell
在计算机科学中,Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器)。它类似于DOS下的command和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。
26、Objective-C
扩充C的面向对象编程语言。
作用:编写iOS操作系统(如:iPhone、iPod touch、iPad 等苹果移动终端设备 )应用程序。
27、QT
一个跨平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所有功能。Qt很容易扩展,并且允许真正地组件编程。基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等图形界 面库和 Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西。
Qt支持下述平台:
MS/Windows - 95、98、NT4.0、ME、2000、XP 、 Vista、Win7、win8、win2008
Unix/X11 -Linux、SunSolaris、HP-UX、CompaqTru64 UNIX、IBMAIX、SGI IRIX、FreeBSD、BSD/OS和其它很多X11平台
Macintosh -Mac OS X
Embedded - 有帧缓冲(framebuffer)支持的嵌入式Linux平台,Windows CE
Symbian Symbian^3 Symbian Anna Symbian Belle
28、嵌入式
嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。
嵌入式设计是企业电子产品设计的重要组成,目前国内外中小型企业内部都建立了自己的嵌入式开发团队。团队所需的人员职位构成包括:(1)系统设计工程师 (2)硬件工程师 (3)底层驱动工程师 (4)Linux系统工程师 (5)应用设计工程师等。
29、逆向开发
逆向是编译的反过程,一般用户破解用户加密等数据。
主要语言:汇编。
主要工具:IDA
主要应用:破解加密、游戏辅助等。
30、初级程序员和高级程序员的区别
同样一个项目,初级程序员想的是实现功能,达到效果,高级程序员想的是架构,如何更理想、更高效率完成。
31、程序员是青春的代表么?
决定程序员之路的元素有很多--------时间、身体、家庭。
如果可以很好衡量这三者,相信你会超越乔布斯。
总结
人生之路漫漫,选择一个自己喜欢的专业很重要,全面了解专业决定了专业水平的宽度,深入某一方面决定了水平的高度。