it-swarm.cn

职业建议:留在PHP或以其他方式开始新的职业(.Net?)

我计划在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。我们将看看生活将带我到何处。

34
Christian P

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

祝福你。

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

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

.Net和Java通常是公司性的(因为使用它们来做有用的事情很昂贵,但扩展性确实很好),PHP通常是启动,我愿意Ruby(通常出于某种原因而从设计工作室出来的初创公司))是很多人独立的。如果您坚持PHP,请学习OO东西,因为我认为这最终将开始成为人们做事的方式,即使这是对您使用Java使它变得更具活力。Python并且想要旅行的人最终可能会在世界范围内从事各种有趣的科学和游戏活动。Perl仍然是赛跑者,并且拥有类似的轮廓。

忘掉语言,选择和选择自己喜欢的行业,选择由人管理的公司,然后去为欣赏它的人们提供价值的乐趣。你不会后悔的。

64
Francis Fish

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

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

还有很多更重要的职业考虑因素。

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

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

120
Joel Spolsky

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

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

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

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

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

23
Steve Streeting

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

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

为了给您估计“我可以用Java编程”潜在雇员应该具备的能力,您可以看一下 Sun Java Tutorial[〜#〜] i [〜#〜]希望您至少熟悉所列的一半概念,其中熟悉的意思是可以在其中使用您编写的程序,并正确使用,我希望它花费超过6个月的业余时间才能达到该水平。

7
user1249

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

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

6
Doug Johnson-Cookloose

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

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

我建议您深入研究PHP直到搬家。辛勤工作,真的很辛苦,每周辛勤工作20个小时。)PHP非常简单..获得一个托管帐户和一个域,然后开始构建应用程序。全力以赴,六个月是永恒的。在这段时间里,变得非常擅长。这将帮助您在New中找到一份好工作York,很可能会使您成为更好的程序员。

顺便说一句..如果您还不知道,那么StackExchange家族中有一个 IT就业网站

然后,当生活过渡平稳下来后,开始遵循 Streeting先生的剧本 ,并开始学习编程的技巧,而不是编码的技巧。在工作之外花一些时间在其他平台和其他工具上阅读和执行操作。

5
tomjedrz

短期;我不知道美国的聘用惯例,但是考虑到您要搬迁6到12个月,我暂时考虑考虑PHP经验。

我在荷兰的经验是,公司倾向于在短期内专注于技术和框架经验。即使他们问“ 年的C#经验“,他们的意思是说“ 年的框架/类库和工具经验,” d与C#一起使用“。

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

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

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

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

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

1
Joppe

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

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

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

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

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

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

1
Konstantin

我认为最主要的一点是,最终,软件工程师应该进入一种状态,即除了局限性外,该语言对于手头的任务基本上不重要。

只要您有手册,就可以找到自己的母语,而无论您是否懂某种语言都不会有所作为。

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

1
Orbling

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

您是否曾经看过.NET或Java=?)?对您自己是否感兴趣。

1
cspolton

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

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

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

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

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

1
mspir

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

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

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

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

PHP和Java有一些重叠,但仅在公司工作中可见(Java REST带有PHP前端的服务),但是您将在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开发人员。但是他们俩在财务上都做得很好,因为他们是各自领域的专家,他们选择的语言以及随之而来的工具。

1
coder3

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

  • 算法和数据结构。
  • 并发
  • 机器学习
  • 系统级编程
  • 信息检索和搜索引擎
0
jshen