【转】如何在编程生涯中有一个好的开端

本文来自:http://www.techug.com/how-get-jump-start-your

作者:http://www.techug.com/author/admin(中文,译作者)

作者:http://java.dzone.com/users/simpleprogrammer(英文,原作者)

 

    想要进入软件开发的领域其实是很难的。当然,如果你还是一名刚刚入门的程序员,那么我相信你深刻理解没有经验或者没有太多经验想找一份工作是如何困难。如果你已经在软件开发这一行干过一段时间,那么我相信你也会深刻理解想要在这个竞争激烈的行业鹤立鸡群又是如何困难。

    我接触过很多刚刚入门的开发人员,他们非常迷茫,因为他们不知道该往哪里投入自己的精力来发展自己的职业生涯,也不知道未来的方向在哪里。选择是如此之多,让人眼花缭乱:有那么多的技术,有那么多的道路。那么那一条才是正确的呢?

 

正确的思考方式

    下面我会给出一些具体的建议,但是在此之前,你得确保你是在用一种正确的思考方式考虑自己的职业生涯。

    职业生涯中相当重要的一点是,企业意识:要将自己的职业当做一家企业。这家企业雇用了你。企业意识有助于你,对于什么时间应该做什么,以及何时该投资自己的职业,做出正确而客观的决定。有很多开发人员只是将软件开发这一职业当做一份临时的工作或者仅仅就是一个饭碗——这种想法毋庸置疑是目光短浅的。不知各位发现没有,同样一个决定,劝别人我们能轻易讲出一大堆道理,但是轮到自己头上却很难?究其原因就是,劝告别人的时候我们往往能够站在客观的立场上,不会有担忧、恐惧等多余情绪的干扰。

    企业意识的原理与上面相似,它能让我们更客观地做出决策。

 

建立企业意识

    话说,为什么我们不能一开始就建立起企业意识呢?

    如果没有亲身经历过,是很难积累经验的。现在的大多数软件开发岗位都会要求具备一定的经验。那么,作为一名经验有限的新手开发人员,我们又该如何“具备”一定的工作经验呢?通常情况下,我们要想成为一名软件开发工程师,需要一个很幸运的机遇,可能是一个 QA 或其他职位,然后依靠自己的辛勤努力和学习。这是一段相当漫长的历程。

    下面介绍一下我的捷径。

    假设自己的“企业”聘用了自己。这一点都不难,甚至都不用写任何资料、提交任何手续。然后我们就可以接业务了。该怎么做呢?我的意思是,不是玩玩,而是真的能赚到钱。当然,我们的最终目的不是赚钱,而是积累经验。我们完全可以不辞掉现有的工作,只是利用自己业余时间搞项目,这样我们就能在简历上理直气壮地写上自己的真实经历了。

    未来的雇主是不可能问出“你的项目赚了多少”这种愚蠢的问题的。(即使他们真的问了,那也没有必要说出来。)所以自己搞的项目能不能赚钱不必太介怀。当然,如果想接些有一定收入的活计,也 ok。

    可以为亲戚朋友建网站。也可以和一些当地企业谈谈是否需要开发一些应用程序。怎么得到的业务并没关系,记住你的目的是增加自己简历的肉感——我的意思可不是让你在简历上吹牛。

 

开发移动应用

    开发移动应用不但能增加经验值让你的简历亮起来,还能挣点小钱,并且让你以后在面试中有侃侃而谈的资本。

我经常建议开发人员在起步阶段一定要接触下移动应用,因为移动 app 一个人也能干,而且这不但能让人有始有终地经历建立一个应用程序的过程(这种经验是很宝贵的),还能成为展示你代码能力的确凿证据。

    任何公司在招聘的时候最担心的就是这些个口若悬河的开发人员是不是真有本事。而你,完全可以通过展示自己写的源代码,来打消这种顾虑。当然,如果你已经创建了一家 app 网上商店,就更好了。

    如果你对开发移动应用感兴趣,可以先看看关于这方面内容的基础教程:《 Introduction to Android》 以及《 Beginning iOS 7 Development》。

    下面这两本是我强烈推荐的进阶教程:

  1. 《Professional Android 4 Application Development》
  2. 《iOS Programming: The Big Nerd Ranch》

    通过写移动应用程序,除了给你的简历增色不少,还能让你对自己更自信,开发软件的技能更为娴熟。

当然,一开始这可能有点难以上手,而且学的人也很多,但是我们不能否认的是,这是一个相当明智的投资行为,因为现在的移动设备发展势头很猛,关于这方面的人员需求一直在增加。

 

规划你的职业生涯

    我经常说,推销自己很有必要,因为这能让软件开发人员获得更好的就业机会,拿到更高的薪酬。我的建议是,我们要好好规划自己的职业生涯,而不是仅仅只是为了找工作。如果你早早地就给自己做好了定位,明白自己想要站到的高度,你之后的职业生涯将因此而受益匪浅。

    我的一个妙招是写博客。越早开始越好。我常常懊悔,要是我能早 5 年或者更早开博客就好了。我遇到的每一个写博客的开发人员谈起这事都深有同感。不要只是创建博客,要使用博客。争取每周写一篇,哪怕你没啥有意思的内容,也要坚持下去。几年之后,你将会是一名超棒的作家,回顾往昔,能看到各种思绪发展的历史痕迹,自己逐步进化进阶的酸甜苦辣。

    规划职业的关键在于坚持,因为这是一场持久战。创建博客、树立品牌等等,会让你之后的职业生涯走得更长更远。所以,不要磨蹭,start now!

 

良师益友

    正确的建议和讨论能指引我们正确的方向、节约大量的时间。我建议你和一些有经验的软件开发人员交朋友,向他们请教,向他们学习。

    当你有需要的时候才去交朋友是很难的,而且也不是你想让对方成为你的导师,对方就一定会接受。俗话说,教会徒弟饿死师傅,做导师有时候并不会教你很多。关键是要有所回报。

    下面是我的一些建议:

    请吃饭。话说,很多感情都是在饭桌上建立的。

    评论自己欣赏的软件开发人员的博客。如果你提出了有见地的意见,他们会关注你。

    交换。你有没有其他领域的知识是别人感兴趣的?是不是可以用健身和减肥的知识换取软件开发方面的信息?最好的结果就是双方能够各得其利。

    用户群体。有很多的用户群体遍布世界各地,你可以成为其中的一员。如果你能定期上去,那么就能和其他用户接触,发展友谊。

 

阅读

    阅读,是人类进步的阶梯,是一个能让人靠自己的实力真正出类拔萃的方法。阅读合适的软件开发书籍有助于我们理解概念,而这如果光靠自己想可能要花费几年的时间,还能让你吸取众多成功软件开发的经验,集百家之长。

    下面是我为入门软件开发人员列出的书单。

  • Code Complete》(《代码大全》)——代码结构的经典之作。
  • Clean Code》(《代码整洁之道》)——主要讲述如何写好代码的关键概念。值得一读。
  • Design Patterns》(《设计模式》)——掌握之后将在你之后的职业生涯中大显身手。
  • Programming Pearls 》(《编程珠玑》)——好好阅读,虽然很难,但是以后你会知道这些努力是值得的。
  • 《Agile Software Development, Principles, Patterns, and Practices 》(《敏捷软件开发原则、模式和实践》)。

    最后祝各位好运,希望我的建议能对各位有用。万事开头难,但是如果我们选择了一条正确的捷径,那必将走的更顺更快,所能成就的职业生涯更辉煌。

转载于:https://www.cnblogs.com/zs8861/p/4058299.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/258068.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

git的使用1[转]

在应用程序开发过程中,很重要的一部分工作就是如何进行源码的版本控制。当代码出现问题时,我们就需要将代码恢复到原先正常的版本。如果是多个人共同开发一个项目,那么代码的控制就会非常复杂。幸运的是,开发者不需要自己控制这些…

matlab做比例积分微分控制,收放卷卷径计算+闭环摆杆控制参数自适应PID控制算法(变比例变积分变微分)介绍...

项目简介最近在一个客户现场搞熔边机项目,涉及到收放卷工艺的卷径计算,同时张力控制使用的是摆杆,然后通过PID控制输出辅助转速补偿收卷伺服速度。单一的PID参数不能自动适应卷径变化,如在小卷径200mm下调试整定出的一组PID参数,当…

如何检测支付宝接口中notify_url.php有没有返回,支付宝中的手机网站支付接口,php版 notify_url.php 异步通知页面未成功执行...

require_once("alipay.config.php");require_once("lib/alipay_notify.class.php");$alipayNotify new AlipayNotify($alipay_config);$verify_result $alipayNotify->verifyNotify();if($verify_result) {//验证成功$notify_data $alipayNotify->…

openfire学习4---android客户端聊天开发之聊天功能开发

前面我们已经把服务器搭建完成,并且在客户端实现了登录了。 和我们使用的QQ一样,想一想,登录成功之后呢?肯定是要有一个好友列表,通过这个列表,我们可以选择我们需要聊天的好友。 这里我们先研究下 xmpp的数…

运用runtime与AOP实现oc中的kvo

前言: oc中实现的kvo观察者模式比较呆板,不支持block,运用runtime机制将其进行实现。 详细实现步骤: 一:给NSObject添加分类(添加相应的添加观察者,删除观察者的方法),这样凡是继承NSObject的类生成的对象都会拥有这两个方法。 二:在添加观察者的方法中,检查本类是否…

CentOS下IPTABLES配置详解

iptables是与Linux内核集成的IP信息包过滤系统,其自带防火墙功能,我们在配置完服务器的角色功能后,需要修改iptables的配置。配置CentOS和Ubuntu等linux服务器时需要对服务器的iptables进行配置,以下是iptables常见的几种配置方法…

mysql教程详解之多表联合查询,MYSQL教程mysql多表联合查询返回一张表的内容实现代码...

搜索热词《MysqL教程MysqL多表联合查询返回一张表的内容实现代码》要点:本文介绍了MysqL教程MysqL多表联合查询返回一张表的内容实现代码,希望对您有用。如果有疑问,可以联系我们。今天在使用MysqL语句的时候老是报错,语句如下:sq…

C#实现冒泡排序

一、算法原理 1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 3、针对所有的元素重复以上的步骤,除了最后一…

PHP - 使用 Pear 进行安装和卸载包

安装: 首先运行到php根目录: 输入要安装的包文件名: 使用语法: pear install 要安装包的名称 回车确认: 如果没有其他意外,显示安装成功。查看安装的包的信息: 语句: pear info 包的…

CYQ.Data 轻量数据层之路 V2.0 震撼惊世 支持多数据库/内置Aop(二十五)

所有文章索引:CYQ.Data 轻量数据层之路 框架开源系列 索引 前言: 从V1.5发布到现在时隔20天了,终于发布2.0版本了,2.0系列版本由于引入多数据库支持,内部结构改动较大。 但是外面调用方式仍保持一致向下兼容&#xff0…

matlab 捕食者和猎物,MATLAB - 追求曲线(捕食者/猎物)

在我的工程课上,我们编写了一个“非平凡的”捕食者/猎物追捕问题。以下是情况的要点:有一个猎物试图逃脱捕食者。每个都可以建模为可以在MATLAB中制作动画的粒子(我们必须使用这种编码语言)。猎物:可以比捕食者更容易操纵(转弯)捕食者&#x…

SQL Server 2012安装图解

方法/步骤 在资源管理器中双击SQL Server 2012的安装光盘,此时会出现一个安装窗口,在左侧的界面中点击“安装”选项卡,如图所示。然后点击右边的第一项“全新SQL Server 独立安装...”选项。 点击“下一步”按钮继续下一步安装。耐心等待片刻…

C#中读写INI文件

INI文件就是扩展名为“ini”的文件。在Windows系统中,INI文件是很多,最重要的就是“System.ini”、“System32.ini”和“Win.ini”。该文件主要存放用户所做的选择以及系统的各种参数。用户可以通过修改INI文件,来改变应用程序和系统的很多配…

html5响应式设置meta

1 <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <!--放大页面到设备合适的分辨率--> 若不支持&#xff0c;请使用兼容ie的js 1 <!--[if lt IE 9]> 2 <script src"http://css3-mediaqueries-js.goo…

jmap在ubuntu上DebuggerException: Can't attach to the process

解决&#xff1a; 临时&#xff1a; 1.echo 0 >/proc/sys/kernel/yama/ptrace_scope 永久&#xff1a; 2.修改 /etc/sysctl.d/10-ptrace.conf&#xff0c;设置kernel.yama.ptrace_scope0 参考&#xff1a;http://bugs.java.com/bugdatabase/view_bug.do?bug_id7050524转载于…

C/C++中对链表操作的理解实例分析

链表概述   链表是一种常见的重要的数据结构。它是动态地进行存储分配的一种结构。它可以根据需要开辟内存单元。链表有一个“头指针”变量&#xff0c;以head表示&#xff0c;它存放一个地址。该地址指向一个元素。链表中每一个元素称为“结点”&#xff0c;每个结点都应包括…

idea写java spark程序,Spark : 在IDEA中用scala编写Spark的WordCount程序并提交运行

使用IDEA新建maven工程&#xff0c;添加相关依赖&#xff1a;1.81.82.11.112.3.02.7.7utf-8org.scala-langscala-library${scala.version}org.apache.sparkspark-core_2.11${spark.version}org.apache.hadoophadoop-client2.7.7给项目添加scala支持&#xff0c;新建Scala Objec…

Contest - 2014 SWJTU ACM 手速测试赛(2014.10.31)

题目列表&#xff1a; 2146 Problem A【手速】阔绰的Dim2147 Problem B【手速】颓废的Dim2148 Problem C【手速】我的滑板鞋2149 Problem D【手速】潦倒的Dim2150 Problem E【手速】被NTR的Dim2146 Problem A&#xff1a; 简单的最长回文串统计算法&#xff0c;这里没有过高要求…

利用Vagrant and VirtualBox搭建core os环境

利用Vagrant and VirtualBox搭建core os环境 系统环境 ubuntu 14.04 x64vagrant 1.7.4virtualbox 4.3.10git 1.9.1# 安装 virtualbox, git sudo apt-get install virtualbox, git# 软件中心的vagrant版本太低,因此去官网获取最新的软件包地址 wget https://releases.hashicorp.…

php关注 取消关注事件,微信公众平台开发关注/取消关注事件例子

用户在关注与取消关注公众号时&#xff0c;微信会把这个事件推送到开发者填写的URL。方便开发者给用户下发欢迎消息或者做帐号的解绑下面是一个微信公众平台关注和取消关注的实例:responseMsg();} else {$wechatObj->valid();}class wechatCallbackapiTest {public function…