我接触过很多刚刚入门的开发人员,他们非常迷茫,因为他们不知道该往哪里投入自己的精力来发展自己的职业生涯,也不知道未来的方向在哪里。选择是如此之多,让人眼花缭乱:有那么多的技术,有那么多的道路。那么那一条才是正确的呢?
正确的思考方式
下面我会给出一些具体的建议,但是在此之前,你得确保你是在用一种正确的思考方式考虑自己的职业生涯。
职业生涯中相当重要的一点是,企业意识:要将自己的职业当做一家企业。这家企业雇用了你。企业意识有助于你,对于什么时间应该做什么,以及何时该投 资自己的职业,做出正确而客观的决定。有很多开发人员只是将软件开发这一职业当做一份临时的工作或者仅仅就是一个饭碗——这种想法毋庸置疑是目光短浅的。 不知各位发现没有,同样一个决定,劝别人我们能轻易讲出一大堆道理,但是轮到自己头上却很难?究其原因就是,劝告别人的时候我们往往能够站在客观的立场 上,不会有担忧、恐惧等多余情绪的干扰。
企业意识的原理与上面相似,它能让我们更客观地做出决策。
建立企业意识
话说,为什么我们不能一开始就建立起企业意识呢?
如果没有亲身经历过,是很难积累经验的。现在的大多数软件开发岗位都会要求具备一定的经验。那么,作为一名经验有限的新手开发人员,我们又该如何 “具备”一定的工作经验呢?通常情况下,我们要想成为一名软件开发工程师,需要一个很幸运的机遇,可能是一个 QA 或其他职位,然后依靠自己的辛勤努力和学习。这是一段相当漫长的历程。
下面介绍一下我的捷径。
假设自己的“企业”聘用了自己。这一点都不难,甚至都不用写任何资料、提交任何手续。然后我们就可以接业务了。该怎么做呢?我的意思是,不是玩玩, 而是真的能赚到钱。当然,我们的最终目的不是赚钱,而是积累经验。我们完全可以不辞掉现有的工作,只是利用自己业余时间搞项目,这样我们就能在简历上理直 气壮地写上自己的真实经历了。
未来的雇主是不可能问出“你的项目赚了多少”这种愚蠢的问题的。(即使他们真的问了,那也没有必要说出来。)所以自己搞的项目能不能赚钱不必太介怀。当然,如果想接些有一定收入的活计,也 ok。
可以为亲戚朋友建网站。也可以和一些当地企业谈谈是否需要开发一些应用程序。怎么得到的业务并没关系,记住你的目的是增加自己简历的肉感——我的意思可不是让你在简历上吹牛。
开发移动应用
开发移动应用不但能增加经验值让你的简历亮起来,还能挣点小钱,并且让你以后在面试中有侃侃而谈的资本。
我经常建议开发人员在起步阶段一定要接触下移动应用,因为移动 app 一个人也能干,而且这不但能让人有始有终地经历建立一个应用程序的过程(这种经验是很宝贵的),还能成为展示你代码能力的确凿证据。
任何公司在招聘的时候最担心的就是这些个口若悬河的开发人员是不是真有本事。而你,完全可以通过展示自己写的源代码,来打消这种顾虑。当然,如果你已经创建了一家 app 网上商店,就更好了。
如果你对开发移动应用感兴趣,可以先看看关于这方面内容的基础教程:《 Introduction to Android》 以及《 Beginning iOS 7 Development》。
下面这两本是我强烈推荐的进阶教程:
《Professional Android 4 Application Development》
《iOS Programming: The Big Nerd Ranch》
通过写移动应用程序,除了给你的简历增色不少,还能让你对自己更自信,开发软件的技能更为娴熟。
当然,一开始这可能有点难以上手,而且学的人也很多,但是我们不能否认的是,这是一个相当明智的投资行为,因为现在的移动设备发展势头很猛,关于这方面的人员需求一直在增加。
规划你的职业生涯
我经常说,推销自己很有必要,因为这能让软件开发人员获得更好的就业机会,拿到更高的薪酬。我的建议是,我们要好好规划自己的职业生涯,而不是仅仅只是为了找工作。如果你早早地就给自己做好了定位,明白自己想要站到的高度,你之后的职业生涯将因此而受益匪浅。
我的一个妙招是写博客。越早开始越好。我常常懊悔,要是我能早 5 年或者更早开博客就好了。我遇到的每一个写博客的开发人员谈起这事都深有同感。不要只是创建博客,要使用博客。争取每周写一篇,哪怕你没啥有意思的内容, 也要坚持下去。几年之后,你将会是一名超棒的作家,回顾往昔,能看到各种思绪发展的历史痕迹,自己逐步进化进阶的酸甜苦辣。
规划职业的关键在于坚持,因为这是一场持久战。创建博客、树立品牌等等,会让你之后的职业生涯走得更长更远。所以,不要磨蹭,start now!
良师益友
正确的建议和讨论能指引我们正确的方向、节约大量的时间。我建议你和一些有经验的软件开发人员交朋友,向他们请教,向他们学习。
当你有需要的时候才去交朋友是很难的,而且也不是你想让对方成为你的导师,对方就一定会接受。俗话说,教会徒弟饿死师傅,做导师有时候并不会教你很多。关键是要有所回报。
下面是我的一些建议:
请吃饭。话说,很多感情都是在饭桌上建立的。
评论自己欣赏的软件开发人员的博客。如果你提出了有见地的意见,他们会关注你。
交换。你有没有其他领域的知识是别人感兴趣的?是不是可以用健身和减肥的知识换取软件开发方面的信息?最好的结果就是双方能够各得其利。
用户群体。有很多的用户群体遍布世界各地,你可以成为其中的一员。如果你能定期上去,那么就能和其他用户接触,发展友谊。
阅读
阅读,是人类进步的阶梯,是一个能让人靠自己的实力真正出类拔萃的方法。阅读合适的软件开发书籍有助于我们理解概念,而这如果光靠自己想可能要花费几年的时间,还能让你吸取众多成功软件开发的经验,集百家之长。
下面是我为入门软件开发人员列出的书单。
《Code Complete》(《代码大全》)——代码结构的经典之作。
《Clean Code》(《代码整洁之道》)——主要讲述如何写好代码的关键概念。值得一读。
《Design Patterns》(《设计模式》)——掌握之后将在你之后的职业生涯中大显身手。
《Programming Pearls 》(《编程珠玑》)——好好阅读,虽然很难,但是以后你会知道这些努力是值得的。
《Agile Software Development, Principles, Patterns, and Practices 》(《敏捷软件开发原则、模式和实践》)。
最后祝各位好运,希望我的建议能对各位有用。万事开头难,但是如果我们选择了一条正确的捷径,那必将走的更顺更快,所能成就的职业生涯更辉煌。
软件是包含程序的有机集合体,程序是软件的必要元素。任何软件都有可运行的程序,至少一个。比如: *** 作系统给的工具软件,很多都只有一个可运行程序。而Office是一个办公软件包,却包含了很多可运行程序,软件是程序以及开发、使用和维护所需要的所有文档的总称,而程序是软件的一部分,所以开端是指开始软件程序的第一步。Pascal基本语句hb007
发表于
2006-4-13
13:57:30
名
称
格
式
功
能
赋值语句
变量标识符:=表达式;
先计算表达式的值,再将表达式的值赋给变量。
输入语句
read(变量表);
readln(变量表);
从键盘上为变量表中的变量赋值。
从键盘上为变量表中的变量赋值(换行读入)。
输出语句
write(输出表);
将输出项显示在屏幕上或用打印机输出。
writeln(输出表);
将输出项通过屏幕或打印机输出(换行输出)。
write(输出项:场宽);
输出项占有的位数=场宽表达式的值。
write(输出项:总场宽:小数位数);
输出项占有的位数=总场宽表达式的值。
输出项小数部分占有的位数=小数位数。
条件语句
if
条件
then
语句1;
若条件为真,则执行语句1。
若条件为假,执行if语句的下一个语句。
if
条件
then
语句1
else
语句2;
若条件为真,则执行语句1,否则执行语句2。
分情况语句
case
表达式
of
常数表1:语句1:
常数表2:语句2;
……
常数表n:语句n;
end
先计算表达式的值,然后执行与表达式的值相同的常数所对应的语句。如果所有的常数表中没有与表达式的值相同的常数,则执行case语句的下一个语句。
case表达式of
常数表1:语句1;
常数表2:语句2;
常数表n:语句n;
……
else
语句n+l;
end
先计算表达式的值,再执行与表达式的值相同的常数所对应的语句。如果所有的常数表中没有与表达式的值相同的常数,则执行语句n+l。
循环语句
for
循环变量:=初值
to
终值
do
循环体;
先把初值赋给循环变量,然后将此值与循环终值比较,当此值小于等于终值时,执行循环体语句。
for
循环变量:=初值
downto
终值
do
循环体;
先把初值赋给循环变量,然后将此值与循环终值比较,当此值大于等于终值时,执行循环体语句。
while
布尔表达式
do
语句:
先计算布尔表达式的值,当其值是真时,执行do后面的语句,若是假则退出循环。
repeat
语句1;
语句2;
……
语句n
until
布尔表达式;
先执行语句1到语句n,再对布尔表达式进行判断。当布尔表达式值为真时重复执行语句1到语句n,直到布尔表达式的值为假时退出循环,执行until语句下面的语句。
转向语句
goto
标号;
转到标号指向的语句去执行。
开域语句
with
记录名
do
语句;
简化对记录的引用。
[例1.1]编程在屏幕上显示“Hello
World!”。
Pascal程序:
Program
ex11
Begin
Writeln(‘Hello
World!’)
ReadLn
End.
这个简单样例程序,希望大家的程序设计学习能有一个良好的开端。程序中的Writeln是一个输出语句,它能命令计算机在屏幕上输出相应的内容,而紧跟Writeln语句后是一对圆括号,其中用单引号引起的部分将被原原本本地显示出来。
[例1.2]已知一辆自行车的售价是300元,请编程计算a辆自行车的总价是多少?
解:若总售价用m来表示,则这个问题可分为以下几步处理:
①从键盘输入自行车的数目a;
②用公式
m=300*a
计算总售价;
③输出计算结果。
Pascal程序:
Program
Ex12
{程序首部}
Var
a,m
:
integer
{说明部分}
Begin
{语句部分}
Write(‘a=’)
ReadLn(a)
{输入自行车数目}
M
:=
300*a
{计算总售价}
Writeln(‘M=’,m)
{输出总售价}
ReadLn
{等待输入回车键}
End.
此题程序结构完整,从中可看出一个Pascal
程序由三部分组成:
(1)程序首部
由保留字Program开头,后面跟一个程序名(如:Exl1);其格式为:
Program
程序名;
程序名由用户自己取,它的第一个字符必须是英文字母,其后的字符只能是字母或数字和下划线组成,程序名中不能出现运算符、标点符和空格。
(2)说明部分
程序中所用的常量、变量,或类型、及过程与自定义函数,需在使用之前预先说明,定义数据的属性(类型)。[例1.2]
程序中
Var
S,R,C:
Real;
是变量说明,此处说明S,R,C三个变量均为实数类型变量。只有被说明为某一类型的变量,在程序中才能将与该变量同类型的数值赋给该变量。变量说明的格式为:
Var
变量表:类型;
(3)语句部分
指由保留字
Begin
(开始)至
End.
(结尾)之间的语句系列,是解决问题的具体处理步骤,也是程序的执行部分。
Pascal程序不管是哪部分,每句末尾都必须有分号(;),但允许最接近
End
的那个语句末尾的分号省略;程序结束的End末尾必须有圆点(.
),是整个程序的结束标志。
程序中花括号“{
}”之间的部分为注释部分。
Pascal程序结构可归纳用如下的示意图来表示:
Program
程序名;
程序首部
标号说明;
(Label)
常量说明;
(Const)
说明部分
类型说明;
(Type)
变量说明;
(Var)
过程或函数说明;
Begin
程序体
(主程序)
语句系列;
语句部分
End.
图1.1
Pascal程序的结构
把处理问题的步骤编成能从上到下顺序执行的程序,是简单程序的基本特征。再来分析下面两道例题的Pascal程序结构和继续学习基本语句。
〔例1.3〕编程计算半径为R的圆的面积和周长。
解:这是一个简单问题,按数学方法可分以下几步进行处理:
①
从键盘输入半径的值R;
{
要求告诉圆的半径R
}
②
用公式
S=πR2
计算圆面积;
③
用公式
C=2πR
计算圆周长;
④
输出计算结果。
Pascal程序:
Program
Ex13;
{程序首部
}
Var
R,S,C:
Real;
{说明部分
}
Begin
{语句部分
}
Write
('R=?');
Readln(R);
{输入半径
}
S:=Pi*R*R;
{圆面积公式S=πR2}
C:=2*Pi*R;
{圆周长公式C=2πR}
Writeln('S=',S);
{输出结果
}
Writeln('C=',C);
Readln
{等待输入回车键}
End.
程序中Pi是Pascal提供的标准函数,它返回圆周率的近似值:3.1415926…。
(:=)是赋值符号,赋值语句的格式为:
变量:=表达式;
赋值语句的作用是将:=右边表达式的值记录到左边的变量中。
Writeln是输出语句,输出语句有三种格式:
①
Write
(输出项1,输出项2)
;
{执行输出后光标不换行}
②
Writeln
(输出项1,输出项2)
;
{执行输出后光标换到下一行}
③
Writeln
{仅输出空白且光标换到下一行}
Writeln语句后面的圆括号以内部分均为输出项,可以是多项,各项间用逗号分隔;
对单引号里的内容按照引号内的原样(字符)输出显示。如果输出项是表达式,则只输出表达式的值,而不是表达式本身。
[例1.4]
输出两个自然数相除的商和余数。
解:设被除数、除数、商和余数,分别为A,B,C,D,均为变量,且都是整数类型。题中未给出具体的自然数A、B,可采用键盘输入方式。
①
给出提示,从键盘输入a,
b;
②
显示两数相除的数学形式;
③
求出a除以b的商c;
④
求出a除以b的余数d;
⑤
紧接等式后面输出显示商和余数。
Pascal程序:
Program
Ex14;
Var
a,b,c,d
:
integer;
Begin
Write('INPUT
A,B:');
{给出提示信息}
Readln(a,b);
{输入a,b}
Writeln;
{输出一空行}
Write(a,'/',b,'=');
{输出等式之后不换行}
c:=a
div
b;
{整除运算,取商的整数部分}
d:=a
mod
b;
{相除求余运算,取商的余数部分}
Writeln(C,'…',d);
{输出后自动换行
}
Readln
{等待输入回车键
}
End.
执行本程序中第一个Write语句,输出其引号以内的一串提示信息,是给紧接着的输入语句提供明确的提示(要求),有“一目了然,人机对话”之效果。
Readln是一个特殊的输入语句,要求输入一个回车(换行)才能往下执行。
Readln是输入语句,它的一般格式为:
①
Read
(变量1,变量2);
②
Readln
(变量1,变量2);
③
Readln
前两种格式均要从键盘给变量输入数据,输入时,所键入的数据之间以空格为分隔,以回车为输入结束。若多输入了数据(即数据个数超过变量个数),Read语句读完数据之后,能让后续的读语句接着读取多下来的数据;而Readln
语句对本行多输入的数据不能让后续语句接着读取多下来的数据。为了防止多输入的数据影响下一个输入语句读取数据,建议尽量使用Readln语句输入数据。第三种格式不需输入数据,只需按入一个回车键。
[例1.5]自然数的立方可以表示为两个整数的平方之差,比如43=102-62,请输出自然数1996的这种表示形式。(这里的43用自乘三次的形式4*4*4表示;102也用自乘二次的形式10*10表示)
解:此题没有现成的计算公式能直接利用,但可以自行推出处理方法或构建适当的运算公式,按着构想的处理方案编排出各步骤。
设这个自然数为N,两个平方数分别为X,Y,
将问题表示为求
N3=X2—Y2
①
先找出X的值,仔细观察题中的示例,用数学方法归纳可得出X=N*(N+1)/2;(构成本题可用的计算公式)
②
再仔细观察,发现Y值比X小一个N值,即
Y=X—N;
③
输出等式
N3=X2—Y2
或N*N*N=X*X—Y*Y
Pascal程序:
Program
Ex15;
Const
N=1996;
{常量说明
}
Var
X,Y:
Longint;
{变量说明,此题计算中的数值较大,用长整型
}
Begin
X:=N*(N+1)
div
2;
{
div
是整除运算
}
Y:=X-N;
Writeln(N,'*',N,'*',
N,'=',
X,'*',
X,'—',Y,'*',Y);
{
输出结果
}
Readln
End.
本程序中N是常量,X,Y是变量,为长整数类型(Longint);
程序中的div
是整除运算,其结果只取商的整数部分;
[例1.6]
求一元二次方程x2+3x+2=0的两个实数根。
解:方程的系数是常量,分别用a,b,c表示,可运用数学上现成的求根公式求方程的根,采取如下方法:
①
先求出d=b2-4ac;(求根公式中需用开方运算的那部分)
②
再用求根公式算出x1,x2的值。(x1,x2
=
?
)
③
输出x1,x2.
Pascal程序:
program
Ex16;
Const
a=1;
{常量说明
}
b=3;
c=2;
{a,b,c表示方程系数}
Var
d
:
integer;
{d为整型变量}
X1,X2:
Real;
{X1,X2为实型变量}
Begin
d:=b*b-4*a*c;
x1:=(-b+sqrt(d))/(2*a);
{求方程的根}
x2:=(-b-sqrt(d))/(2*a);
Writeln('X1=',X1,'
':6,'X2=',X2);{输出结果}
Readln
{等待输入一个回车键}
End.
本程序中的a,b,c均为常量;变量d是整数类型,而变量x1,x2则是实数类型,因为运算式中的Sqrt(d)开平方运算和(/)除法运算使结果为实数。Sqrt(
)
是开平方函数,是Pascal系统的一个标准函数。
习题1.1
模仿例题编程
1.
加法计算器:编程由键盘输入两个整数a和b,计算出它们的和并输出到屏幕上。
2.
某梯形的上底、下底和高分别为8,12,9,求该梯形的面积。
(
梯形面积公式为
S=
3.
求右图所示边长为5.6
的正立方体表面积。
4.
已知图园柱体的高为12,底面园的半径为7,求园柱体表面积。
5.
计算某次考试语文、数学、英语和计算机等四科的总成绩与平均成绩。
(请用输入语句从键盘输入各科成绩分)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)