职业建议:继续使用PHP或以其他方式(.Net?)开始新的职业[关闭]


34

我计划在6到12个月内搬到纽约,所以我不得不寻找新工作。当我计划在另一个城市开始我的生活时,也可能是考虑职业变化的好时机。

我发现了关于PHP,.Net和Java的许多不同观点,这不是这里的主题。我不想就哪种语言更好展开新的斗争。成为一名软件开发人员,了解编程语言并不是最重要的事情。要成为一名真正的优秀开发人员,您需要了解OOP,设计模式,测试...,而语言只是使事情成真的工具。

回到我的问题。我在IT方面有不同的经验-担任IT支持人员1年(Windows管理和支持),大约2年嵌入式编程经验(VB.Net 2005),最近2年我一直在使用PHP / MySQL。我曾与Magento网上商店合作,协助Symfony进行了一些项目,并修改了一些Drupal网站。

我主要关注的问题如下:

  1. 我是否会继续提高自己的PHP技能,例如开始学习一些主要的PHP框架,例如Zend,Symfony或获得一些PHP认证。
  2. 还是开始学习.NET或Java。我对.NET更为熟悉,所以如果选择介于.NET和Java之间(或者您可以说服我选择Java :),我可能会选择它。

在职业方面,我不知道什么是最佳选择。学习新的框架和语言要花费更多的时间,然后才能提高我现有的PHP技能。但是,使用.NET,您将有很多可能性(Windows 7 Phone开发,Silverlight,WPF),并且可能有更大的机会找到更好的工作。

根据我的研究,至少与.NET相比,PHP职位的薪水较低(如果我错了,请纠正我)。但是,如果我现在开始使用.NET,我只是一个初学者,我的薪水会很低。我需要至少2年以上使用某种语言的经验,才能尝试找到一些薪水高于纽约50-60k美元的工作。在接下来的2-3年中,我的主要目标是设法找到$ 60-80k的工作。不要误会我的意思,我不仅在追逐金钱,而且在您尝试建立家庭时,金钱是重要的因素。

我今年27岁,我觉得我的职业生涯没有太多错误决定的余地,因此任何建议都将受到欢迎。

更新资料

谢谢大家花时间帮助我解决我的问题。所有的答案和评论都非常有帮助。我决定坚持使用PHP,还要学习C#和Silverlight4。我们将看看生活将带我到何处。


两者都学习。在每个项目中启动一个项目。并不需要那么长时间。
systemovich 2011年

尝试使用代码点火器。它非常容易学习,并且有据可查。
B

2
学习2-3种语言没有什么害处。
鲁迪

由于这被某人撞倒,我不得不问:嵌入式VB.NET?..
西蒙·怀特海德2012年

@SimonWhitehead它不是完全嵌入的,但是我找不到更好的词来解释它。它是用VB.NET编写的用于工业硬件(由我和我的同事制造)的应用程序,它与两个DAC(数据采集卡)通信。
Christian P

Answers:


64

我今年51岁,自1987年毕业后第一次获得报酬以来,至少使用了15种语言和/或框架。

祝福你。

我从来没有去过管理层,因为我不想这么做,但是我知道如何编程,也知道如何保持团队的积极性和交付良好的代码。您需要提高人际交往能力,并寻找有趣的工作来扩展自己。我从未停止学习或娱乐,但是有时候我在路上可以停下来-但不能编码,旅行。

只要您能在不损害自己原则的前提下谋生并实现自己的个人承诺,只要您喜欢自己做的事(我父母那代人所没有的奢侈品)就可以继续坚持下去。

.Net和Java通常是公司的(因为使用它们做有用的事情很昂贵,但是可以很好地扩展),PHP通常是初创公司,我为很多人使用Ruby(通常是出于某些原因而从设计工作室出来的初创公司)作为一个独立的。如果您坚持使用PHP学习OO知识,因为我认为它将最终开始成为人们做事的方式,即使这是对Java的重新实现稍好一些,他们可能会使它更具动态性。使用Python并想旅行的人最终可能会在世界范围内从事各种有趣的科学和游戏活动。Perl仍然是跑步者,并且具有相似的个人资料。

忘记语言,选择自己喜欢的行业,选择一家由人管理的公司,去为欣赏它的人们带来价值的乐趣。你不会后悔的。


9
PHP在OO上非常弱。它最初是作为模板语言显示的。
Keyo 2010年

5
@Keyou,并不意味着您不应该推动php OO功能的使用,因为它将语言提升到另一个层次:)
jonathan 2012年

@Keyo谁告诉过PHP,面向对象的信息对PHP的作用很弱PHP OO现在与Java非常接近,请参见PHP5.5,并且它还在不断改进
Hmmm

120

编程语言的选择到底与您的职业有什么关系?

这个问题就像问:“我有两种选择工作的地方。我应该在老板具有挪威口音的工作环境中,还是在老板具有西班牙口音的工作环境中工作?”

还有很多更重要的职业生涯考虑。

  1. 创业还是成立公司?
  2. 产品公司或IT在哪里支持功能?
  3. 您会学习新事物还是重新整理旧事物?
  4. 9到5还是“您想工作80小时?”
  5. 好的同事还是卑鄙的同事?
  6. 聪明的同事还是愚蠢的同事?
  7. 西装,领带或T恤?

此列表可能持续几个小时。选择编程语言与选择编程语言与选择将头发梳向左侧还是右侧一样重要。无论您碰巧使用哪种编程语言的方言,都是软件开发。


19
你有一定道理。但是编程语言的类型在大多数情况下与公司简介紧密相关。据我了解,PHP主要用于新兴公司,而主要的知名公司则使用.NET进行开发。
Christian P 2010年

29
真正的答案:花几个月的时间来获得五位数的Stack Overflow信誉,您将获得$ 100K +的工作机会,而无需接受面试。
Joel Spolsky

37
@Joel:我非常喜欢StackOverflow(距离为了娱乐而达到五位数的声誉还需要几个星期的时间),如果我因此而获得10万的工作机会,我会给你买啤酒:-)
Diego Mijelshon

25
对于一些人来说,语言具有的一切与你的职业生涯。我很乐意为许多大公司工作,但不会以编写会挫败我/降低生产力的语言为代价。我并不是说我只愿意写一种语言,但是肯定有一些我不想全职编写的语言,而我接受工作会很愚蠢,例如在弹性工作时间里写Objective- C在9-5的工作中编写C#。您可能不同意这个观点,这很好。但是不要以为程序员是白痴。您的重要注意事项清单是您的
Danny Tuppeny

39
@乔尔 我可以有10万份工作吗?我有一个5位数的代表,目前失业。
aaronasterling

23

尽可能多地学习语言,最好是在每个主要开发领域中至少学习一种。

  • 脚本编程语言(您已经有PHP,请尝试Ruby,Python或其他工具)
  • 编译为具有丰富框架的虚拟机语言:.Net,Mono,Java
  • 编译为裸机:C / C ++
  • 功能语言:Lisp,F#,Haskell

其中的每一项都会教给您一些有关软件开发基础知识的知识。当然,最重要的是,您需要体验不同的设计方法(OO,功能,数据驱动),不同的团队工作方法(敏捷,tdd,与更严格的类型相比),不同的平台,不同的部署机制(本机)。 ,基于框架的网络)。清单继续。语言流利程度只是整体的一小部分。

对于所有这些事情,您需要使用它们至少制作一种真实的产品才能熟练使用。

有人会告诉您您需要专门研究一种技术(PHP,.Net,Java),并在很大程度上围绕该技术来发展事业以取得进步。我完全不同意。我将聘请一位开发人员,该开发人员在过去10年中每周花一天时间做一件事情,并且使用不同的平台和技术几次。原因是技术每年都在变化,并且能够选择一种新技术,阅读API并以更一般的方式应用其经验的开发人员,将比仅仅了解库函数的工作效率高得多。长期。好的,这样10年的.Net资深人士将能更快地脱离.Net的起跑点,但是早期的领先优势大约会消失一个月。它'


3
我还将在您的列表中添加逻辑语言(Prolog),数学语言(通常是功能的子集)(Mathematica,R),前缀/后缀语言(PS,Forth),汇编器和基于硬件的(用于FPGA等)。
2010年

8
我同意...学习新语言很有趣。但是,当您在尝试学习新的PHP框架和将来希望使用的其他语言(C#)的同时尝试提高常规软件开发知识时,以娱乐为目的学习新语言不是一种选择,或者至少没有这种选择在生活的其他部分做出重大牺牲。
克里斯蒂安·P

4
我同意克里斯蒂安,这个答案有点极端。但是,也许从这个答案外卖不应该,“学一bajillion新的语言,现在或者你可以亲吻你的梦想再见。” 它应该是:“是的,您应该尝试以一种您不熟悉的语言来找到一份工作,因为从长远来看,这是一项更好的职业投资。” 另外,这是真正精通某种语言的最好方法。
尼尔·特拉夫特

1
@Orbling:您是对的,列表还不完整,我只是选择了主要的“职业”人员,以避免列表变得过于艰巨;)
Steve Streeting 2010年

3
至于极端-我并不是建议您一年内学习所有这些语言:)既然问题是在职业背景下进行的,我认为这根本不现实。我们所有人都必须为自己的专业发展承担责任,即使您一年中使用以前从未使用过的技术来做一个业余项目,它也会为您带来很大的帮助。开源也是实现此目的的一种好方法,因为它意味着您可以参与一个真实的项目而无需从头开始,并且可以从社区中的同龄人那里获得帮助。
史蒂夫街

7

我建议找一个PHP工作,因为那是您最擅长的。

我还建议您开始接受自己想学习的新技术的教育,以便最终可以开始使用这些新技术寻找工作,但是不要在如此短的期限内完成工作,因为您会发现这些东西是巨大的,雇主期望您足够了解这些庞然大物以提高生产力。那需要时间实践。不要低估您需要做的时间和练习量。

为了估计潜在员工应该具备的“我可以用Java编程”的能力,您可以看一下《Sun Java Tutorial》希望您至少对所列概念有一半的了解,熟悉的意思是能够在您编写的程序中使用它并正确使用它。我希望学习花费超过6个月的时间才能达到该水平。


7
6个月?真?我雇用的那种程序员在工作的第一周就学习语言和平台,这就是为什么我从不关心别人在Stack Overflow或Fog Creek求职时会知道什么语言。
Joel Spolsky

4
@Joel,请注意,我说的是在业余时间捡东西。一个人,没有周围的导师。这可能不是像与您和您的员工一起在办公室中实际学习新知识那样有效的方法。也许您会想雇用christian.p来证明我做错了?

3
@Joel用您自己的自定义创建的语言编写应用程序时,您别无选择,!;-)
Darrel Miller 2010年

3
@Orbling。对他们来说不是那么容易吗?为什么不做类似“请在此BrainF * ck生产代码中查找并修复错误!我和我的5个同事将监视您并花费您多长时间的时间”之类的内容?

5
@Joel-我怀疑当克里斯蒂安(Christian)在一个新城市寻找新工作时,他会发现并不是所有的雇主都像您在Stack Overflow / Fog Creek一样不懂语言。确实,我想冒一个猜想,那就是,与其不关心他所知道的语言,如果95%+的人与正确的语言关键字不匹配,他会立即将他的简历扔进垃圾箱。
Carson63000

6

我讨厌看起来像个巨魔,但您应该学习的语言是英语。您的帖子中有很多错误,看起来很草率。如果我正在招聘并且那是您的简历,那么我不会在乎您说的是哪种编程语言,我会假设您对英语的懈怠会继续您的编程工作。

看来您并不是以英语为第二语言来学习的(当然,我可能是错的),但是语法和拼写错误足以使大多数招聘经理停下来。由于他们起初只会看到您的书面文字,因此您需要进行修正。


6
这不是主题,但是请多加注意。英语实际上是我的第二语言。信不信由你(或对你来说很明显),但是我学会了自己一个人说英语/说英语(没有语言课程)。
Christian P 2010年

3
因为这是您的第二语言,所以您表现不错。显然有个人检查您的简历只是为了确定,但是我知道,如果我必须用法语发表评论,那将不会像您的英语那样清晰明了。并不是在偷偷摸摸,只是想提供帮助。有很多美国人不关心他们的拼写和语法,这对他们的市场造成了伤害。
Doug Johnson-Cookloose 2010年

1
我知道我的英语需要改进,我正在尽最大努力加以改进。但是我很感谢您的评论,因为我知道当我申请一份工作时,重要的是整体印象。因此,如果我的写作草率,将会损害我总体上获得工作的机会。
Christian P 2010年

1
从前,如果您通过招聘者申请工作,他们会花时间完善您的简历,并确保拼写,语法和整体风格正确。但是我最近一直在面试一些候选人,而且招聘人员似乎不再烦恼,他们只是将徽标贴在右上角并发送简历。因此,我建议找一个您信任的朋友来浏览您的简历和申请信/电子邮件。
Carson63000

1
@ Carson63000我通过招聘者招聘的经验是,当他们尝试“帮助”时,他们常常会弄乱应聘者的简历。结果,我不得不给那些草率的简历的候选人带来疑问的好处。如果有选择的话,我会把那些白痴的招募者全部排除在外。
丹尼尔·卡西迪

5

对这个问题的长期回答基本上就是我们尊敬的主持人(乔尔·斯波斯基)和史蒂夫·斯汀林所说的。编程的核心与语言无关,它与使用计算机解决问题有关,它是一种必须随着时间的流逝而学习,运用和思考的技术。知道如何编码不会使一个程序员成为一名程序员。

但是您问了一个务实且对时间敏感的话题..您现在应该做什么?

我建议您在使用PHP之前先进行研究。辛苦工作,真的很辛苦,每周工作20个小时。使用PHP相当容易..获得一个托管帐户和一个域并开始构建应用程序。通过集中的努力,六个月是永恒的。在那段时间里,变得非常擅长。这将帮助您一次在纽约找到一份好工作,并且很有可能使您成为一个更好的入门程序员。

顺便说一句..如果您还不知道,StackExchange家族中有一个IT招聘站点

然后,当生活过渡平静下来后,就开始按照Streeting先生的剧本讲课,并向自己介绍编程的技巧,而不是编码的技巧。在工作之外花一些时间在其他平台和其他工具上阅读和执行操作。


1

我认为最主要的一点是,最终,软件工程师应该进入一种状态,即该语言对它的局限性非常重要,除了其局限性之外。

只要您有手册,就可以在第一天左右加快速度,无论您是否懂某种语言,都不会有所作为。

话虽如此,专有语言往往在网络上散布的文档和示例较少,因此,如果您希望随身携带工作,则更难以习惯并带来问题。


3
语言很少难。我花了相当长的一段时间才能学习生态系统和最佳实践……

@Thorbjørn非常正确,在某种语言中获得最佳实践可能需要一些时间。尽管这很大程度上取决于您的学习方式,但是某些语言比其他语言难于查找信息。
2010年

1

我的建议是找一份工作,做自己感兴趣的事情,并乐于做。如果您喜欢PHP,为什么不继续发展自己的PHP技能。学习和发展做自己感兴趣的事情的技能要容易得多。

您曾经看过.NET或Java吗?如果不是这样,可能表明您对这些语言不感兴趣,但是也许您可能需要花一个星期左右的时间来查看每种语言,然后自己查看您是否对这两种语言都感兴趣。


我熟悉Silverlight 4和C#(在VB.NET 2005中也有2年的经验),这是我考虑切换的主要原因。
Christian P 2010年

1

短期; 我不知道在美国有什么样的招聘实践,但是考虑到您要搬迁6到12个月,由于您有两年的工作经验,因此暂时考虑使用PHP。

我在荷兰的经验是,公司倾向于在短期内专注于技术和框架经验。即使他们要求“拥有3年的C#经验 ”,他们的语言实际上也不是“它”,而是说“拥有3年使用C#的框架/类库和工具的经验 ”。

(否则,为什么他们要雇用需要3年才能学习C#语法和语言功能的人,这超出了我。这听起来像我不想雇用的人。)

学习新语言;静态的,动态的,功能性的,对于拓宽您的视野非常重要。但是,学习相关的类库和用该语言做事的方式将需要经验。

我建议您做出决定,选择一个技术堆栈并深入学习它。使用其他环境进行启发。

当然,个人喜好也会发挥作用。例如,尽管有很多市场,但我永远不会接受PHP职位:-PI选择一个堆栈,然后我以此为基础寻找工作。

至于长期的职业发展,我认为您不应该只看编码(最后是学习和能够阅读和/或略读文档的全部内容)和当今的技术,并更多地研究软技能等。技术来来往往很快。当然,关于良好实践和更广泛的专业知识,还有很多要学习的东西,不幸的是,根据我的经验,很少有人在劳动力市场上寻找它们。


1

我认为人们经常混合使用编程语言和框架/技术堆栈。学习一种新语言相对容易,但是使用大型技术则要困难得多。我同意一些答案,最重要的是您的整体编程/问题解决经验,但是我相信没有人可以在1周内掌握全新的技术。

当然,很大一部分开发人员从未读过一本技术书,也不了解他们使用的技术的基本组成部分。他们只是想办法解决问题,而且非常“成功”。我开始从事PHP生涯时甚至一开始都不了解HTTP的工作原理。但是,我最尊重的一些雇主期望对“事情如何运作”有深入的了解,仅仅是因为这会增加其项目成功的机会。

要获得这种了解,您至少需要做的是阅读足够多的GOOD书籍,以在新的陌生开发环境中为常见问题的解决方案提供原型。一个礼拜可以做吗?我很乐意与有能力的人一起工作,但是我不希望很快见到这样的人。

实际上,有些雇主愿意为您提供足够的时间来获得这种理解,同时尊重您在其他技术堆栈(如果有)中的总体深厚技术经验,但是不幸的是,大多数人没有。

另外,当您正在更改技术时,最重要的是您的个性-您要花足够的时间了解自己在新领域中的工作方式和完成方式的谦虚和好奇心。

综上所述,我的回答如下。选择一种技术,该技术具有足够的潜力,并且(最重要的)将使您工作愉快。专门研究这项技术,就业市场将对此予以重视,而获得目标薪金所需的几年时间将是值得的。但是不要过分热心,花一些时间使用其他技术,它将使您在总体上变得更好。


1

我必须同意乔尔。但是他的答案超出了技术技能和偏好。

根据我的经验,通常您的工作要求会指向特定的技术或编程语言,而不是您想使用的语言。除非它的初创公司尚未定义他们将要使用的功能。而且没有人能保证您会找到与您所需要的职位完全相同的工作/公司。

因此,真正的问题是:您善于学习新事物吗?您可以使用编程语言解决问题并及时解决吗?

一个好的程序员应该非常了解软件构造和软件工程概念。您的问题使我相信您没有花足够的时间来学习这些知识,这可能使您不确定自己的技能和实际潜力。老实说,如果您还没做完,那您会做的,因为没有这些,您可能不会走得太远。

在我们超过30岁之前,我们大多数程序员倾向于不注意另一件事:编程技能仅是组成优秀程序员的一半。你是一个好的团队合作者吗?您是否愿意像您正在(或应该)从他人那里接受知识一样,将知识传递给同事?人际交往技巧被我们许多人低估了,而实际上却非常重要。


1

我不同意此板上列出的大多数评论。

除了学习软件工程原理和理论外,您选择掌握的语言是一种职业选择。这就是为什么有Java程序员和PHP程序员的原因。PHP程序员可能不会为NASA工作,而Java程序员可能不会为网络商店工作。

如果要在美国公司工作,最好不要使用Java / .Net。收入不错,但可以准备向他们捐赠生命(明智的做法)。

如果您想成为一名独立的自由职业者,并且希望通过Web技术快速生活,那么使用PHP更好。这里有很多工作,但是薪水相差很大,而且独立工作是汤姆,迪克和哈利每个人的工作,他们的想法是设法以便士的价格雇用您。

PHP和Java有一些重叠之处,但仅在企业职位(带有PHP前端的Java REST Services)中可见,但是您不会在Java附近的任何地方找到网上商店或独立的自由职业者。

如果您想在任何给定的情况下都有用,两者都需要大量时间和奉献精神。

要成为有能力和受追捧的PHP开发人员,您需要一整套充满技能的书包。您将很有可能会了解CSS,HTML4 / 5,以及最肯定的Javascript DOM / Ajax / Jquery,以及至少一个可行的框架,例如Zend(美国品尝者的选择),Codeignitor,cakePHP等,然后您您需要了解“三大” CMS:Drupal,Wordpress和Magento。掌握这些技能,您将成为PHP专家,并且可以随身携带工作。如您所知,所有这些都是对语言的热爱,它是一种工具,因为学习Perl并不会帮助您成为Drupal或Zend的专业开发人员。

Java也是如此:OOP,J2EE,REST / SOAP,Spring / Struts等。而且,其他许多工具需要花费数年才能掌握。

这里有没有人尝试过用Java编写代码一年,然后又回到了PHP(或任何脚本语言)。它很难。感觉很尴尬。

我为一家财富500强公司工作,Java开发人员将无法执行PHP开发人员的工作,PHP开发人员将无法执行Java开发人员的工作。但是他们俩在财务上都做得很好,因为他们是各自领域的专家,他们选择的语言以及随之而来的工具。


0

语言和平台并不重要。学习扎实的人并掌握科学技能。很多人都这样说,但是没有给出具体细节,所以让我来做。这是一些要学习的东西

  • 算法和数据结构。
  • 并发
  • 机器学习
  • 系统级编程
  • 信息检索和搜索引擎
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.