0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一位印度软件开发工程师的内心独白

工程师人生 来源:网络整理 作者:工程师吴畏 2018-08-04 09:20 次阅读

我叫Siva,是印度海得拉巴的一名软件开发人员。软件开发是一份令人兴奋的工作,因为你每天都可以看到新事物。如果没有新的事物,我们还可以赋予一些旧概念新的有趣的名字,然后自娱自乐。但是,从我的角度来说,在印度做一个软件开发人员略有不同,也有点难。总之,一言难尽。

来自于其他国家的软件开发人员对印度软件开发人员的看法,让我大吃一惊。

所以今天,我想和大家分享我作为印度IT行业中的一名软件开发人员的感受。

ps:这些纯粹是个人观点,不喜勿喷。

我的第一份工作

我的第一份工作是在一家小公司里,职位是Java开发人员。并且我的几个非常亲密的朋友也加入了这家公司。我很庆幸能在我职业生涯的初期就和一些非常有才华的人一起工作。

我的第一个经理习惯于强迫我们在工作的第2到3个月时间内只使用 Notepad+ + / EditPlus编码,目的是为了让我们熟悉如何编译和运行程序,并知道编译时和运行时的类路径等。但是,架构师对此颇不认同。有一天,他看见我在用EditPlus编码,就走到我身边,说:“难道你去打仗都不用武器的吗?”。他从我一片茫然的表情中知道了我并不知道他在说什么。他将键盘拖到他面前,下载了Lomboz Eclipse(一种Eclipse的变体,不过现在已经没落了),然后给我解说如何使用它。此外,时不时地,他还教了我一些很有趣的键盘快捷键,用IDE代替Notepad/ EditPlus写代码的速度明显快多了。

我从他们身上学到了了解事物的工作原理以及如何有效使用工具来加快工作的重要性。

对了,我的团队领导是实战经验非常丰富的开发人员。他记得大多数核心的Java API方法,并对设计模式有一个很好的理解。他是一个完美主义者。即使只是代码缩进不正确,他也不同意我们提交代码。有一天,我们正在加班,时间甚至已经是第二天凌晨了,因为我们得提供一些紧急交付。然而即使这样,他也坚持要纠正缩进,清理导入的包和未使用的变量,严格按照TABs和空格一致等原则。我们抱怨不休。

但是后来在融合来自于不同开发人员的所有代码更改的时候,我们才意识到这么做的重要性。他总是说:“既然要做,就要把事情做好。否则就不要做。”

至于团队中的其他成员,由于我们也是好朋友,所以彼此之间没有任何冲突,也没有政治矛盾。我们常常周五晚上开party直至凌晨2点,在办公室讲笑话乐得哈哈大笑。一切都是那么美好。

开启我真正的旅程

3年后,我离开了这家公司,跳槽到一家大公司里,大公司意味着更好的工作,更高的工资和更佳的工作文化。然而我很快发现,并不是所有的东西,大公司都比小公司好!在那里,我遇到了一个有着可怕代码库的遗留应用程序,看得我真是头大无比。

此外,和我一起工作的开发人员,都是这家公司的老员工,他们不愿意接受任何新的东西,没有兴趣使应用程序变得更好,只想墨守陈规,即使原来用惯的方法是令人痛苦不堪。

由于印度IT产业主要是基于离岸开发模式,大部分的时间我们都在维护遗留的代码库。我们很少有机会去搞新建的项目。即使是那些关键架构/设计部分是由现场团队完成的新建项目。

幸运的是我有机会去参与一些新建项目,也涉及了从头开始设计应用程序的过程。

许多公司里对那些想要继续走技术路线不想转去管理部门的程序员,都没有明确的职业发展规划。更糟糕的是有些公司迫使开发人员在具备了一定年限的工作经验之后,步入人事管理的行列。

青菜萝卜各有所爱,不是所有的开发人员都热衷于技术,这无可厚非。有的人是做一天和尚撞一天钟,有的人只想着不择手段完成就好,不管代码质量和可维护性如何。在印度,你很难找到那种充满激情的开发人员,因为大部分人只是将编程当作工作而已,而是不是因为乐趣和爱好。

有时,我学会了新的东西,或做了一些很酷的玩意儿,环顾四周想分享我的激动心情之时,却发觉没有人能够理解我的这种兴奋之情。

写博客

当我在一个项目中使用Struts 1.x框架的时候,我碰到了一些棘手的问题。并且在努力捣鼓了3天之后依然找不到任何解决方案。我不停地调试,搜索了所有的书籍和论坛。终于发现有人针对这个问题刚好写了一篇文章,并提供了解决方案。果然他的解决方案是有效的。我向那位博客作者表达了万分感谢。但想到还有很多不知道作者的博客也帮助了我很多,于是也想开一个博客回馈社区。于是,我有了我自己的博客,上面我陆陆续续写了一些我学到的东西。

不久,我的文章发表在了DZone和JavaCodeGeeks社区网站上。虽然我的英语写作能力不够好,但我一直在写文章,希望通过练习能够熟能生巧。

当看到有人对我的文章评论“在你的文章中我学到了一些东西”的时候,我真的非常开心。我从StackOverflow,博客,论坛等社区中获得了很多帮助,如果可能的话我也想尽我的微薄之力回馈给社区: -)

写书

之后,我写的文章陆陆续续发表在了DZone和JavaCodeGeeks上,我的博客拥有了越来越多的访问者。终于有一天,我收到了来自Packt出版社的一封电子邮件,上面问我是否有兴趣写一本关于MyBatis的书,我当时真的是激动万分。

在我答应写这本书之后,他们开始向我解释写作流程和支付的详细信息。他们可能不知道,即使没有任何报酬,我也愿意写这本书。我同意写这本书是因为我对技术的热情,而不是为了赚钱。

当我差不多完成我的第一本书的时候,他们要求我写另一本关于PrimeFaces的书,我同意了。我大概花了18个月的时间来写这两本书。在这一年半的时间里,我没有任何休息,没有周末,也没有外出游玩,什么都没有。一有时间我就去写书,或阅读我已经写好的内容看看能不能改动什么使表达描述更精准。

也正是这段时间,让我意识到有一些自己的空余时间是多么的重要。写书是非常耗费时间的。如果你写书的目的是为了赚钱,那么我建议你换一种方法!

然后有一天,我收到了一个快递,里面是《MyBatis》这本书的印刷本。看着自己的劳动成果变为现实,感觉真心太棒了。我激动不已。

充满激情的开发人员面临的挑战

印度的软件开发人员需要面对很多问题。

优秀的开发人员就像战争英雄

由于我们要做的大多数是遗留项目,或是在维护模式下的项目,因此管理层更喜欢那些忠诚的,坚守在公司的老员工(尽管很多老员工拿的工资并不高或者公司并没有将他们当作一种资源对待),而不是技术力量雄厚的人才。

优秀的开发人员就像战争英雄,虽然在我们开启新项目或创建一些核心设计的时候需要这样的人才,但是一旦核心设计已经搞定了,其他的开发人员按照设计走也可以添加方法到流的时候,就像一旦战争结束了,那些英雄就会变得无人问津一样,很多公司就不会再去关注那些优秀的开发人员。

许多非印度技术人员讨厌印度的开发人员

我经常看到一些抨击印度软件开发人员的文章。当然,这只是一些个人的意见。

印度IT企业的主要问题是,为了获得项目,他们让客户相信他们能在几乎不可能的时间内交付项目。而为了达成这些疯狂的时间线,他们将责任下放到管理人员身上,然后管理人员强迫团队领导接受任务,而团队领导再将截止时间扔给开发人员。这就是印度的开发人员面临的最大问题。许多印度的开发人员不知道怎么说“NO”。他们只会默默地接受这种疯狂的时间计划,竭尽全力地完成。而这整个过程的结果是“不可维护的蹩脚的代码”。

但是,我还有几个问题。现场的非印度客户怎么会相信“印度离岸团队可以用6个月的时间建造现场团队预估要18个月的同一个项目”?他们为什么不要求终端到终端的测试套件?他们为什么不要求代码质量报告?

一分价钱一分货!你支付多少,你才会得到多少!

那些大放厥词说“所有印度程序员都很差劲”的人,应该先想清楚再说。这样一棍子打死一船人,是要不得的。每个地方每个国家都既有优秀的开发人员,也有差劲的开发人员。我曾经和一些非常嚣张傲慢的现场开发人员合作过。那么难道说所有的现场开发人员都是嚣张的吗?这当然是大错特错的。

我坚信,在印度也有很多伟大的开发人员和架构师,而且我和他们共事过。

也有很多像我这样希望每天都能学到什么,想要成为比昨天更优秀的开发人员。这么多年时间中,我学会了“如何快速学习新事物”。所以,我竭尽全力学习,为明天做好准备。无论你要我使用的是Spring还是JavaEE,Python还是RoR,Eclipse还是NetBeans,我都能手到擒来,游刃有余。

继社区之后

正如我说,在印度很难找到充满激情的开发人员,因此我希望能够多多接触世界各地使用社交网络如Twitter的充满激情的开发人员。

我喜欢参加技术会议,喜欢接触伟大的开发人员。但不幸的是,相比美国,印度这样的会议很少很少。所以,我会在InfoQ,Parleys和Youtube上观看那些会议会谈,这是我的盛宴,令我心旷神怡。

展望美好未来

近年来,很多事情正在慢慢改变。如今的印度IT产业已经不再完全依赖基于美国的项目。印度企业中技术应用增长了很多。但是,除非思维过程得到改变,否则一切就都还是在原地踏步走。企业不应该再异想天开让“9个开发者1个月时间发布一个新项目”。

开发人员应该更专业,并且当要求他们去做一些不能高质量完成代码的实现任务的时候,能够鼓起勇气说“NO”。

总之,通过这些年的学习,我明白了软件开发并不都意味着技术。关键是要理解业务领域,重视其他人的沟通交流。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 软件工程师
    +关注

    关注

    8

    文章

    218

    浏览量

    21138
收藏 人收藏

    评论

    相关推荐

    我国软件开发者数量突破940万

    。目前,开源已覆盖软件开发的所有场景,全球97%的软件开发者和99%的企业使用开源软件。 工业和信息化部总工程师 谢少锋:我国已经成为全球开源参与者数量排名第二,增长速度最快的国家,开
    的头像 发表于 12-24 13:52 92次阅读

    嵌入式工程师常用的开发工具有哪些?

    仿真器可以模拟复杂的微控制器和外设,帮助工程师在早期阶段进行软件开发和调试。这大大缩短了开发周期,降低了开发成本。 总之,嵌入式工程师需要
    发表于 12-20 15:29

    寻求专业工程师帮助设计USB多口充电器

    嗨, 我正在开发款USB多口充电器,现寻求一位专业工程师或产品设计的帮助。希望能够与有经验的工程师
    发表于 08-05 12:03

    嵌入式软件开发招聘

    本帖最后由 jf_19082533 于 2024-7-26 13:56 编辑 寻求:嵌入式软件工程师 要求:3年以上开发经验,音视频领域应用层开发 地址:北京市昌平区 邮箱:1017933921@qq.com 欢迎广大感兴
    发表于 07-26 13:44

    【《软件开发珠玑》阅读体验】+ 心得

    ,《软件开发珠玑》是本值得每个软件开发者阅读的书籍。它教会了我们如何了解需求、设计、项目管理,如何与团队合作以及如何持续学习和进步。在未来的软件开发生涯中,我将继续秉承书中的理念,努
    发表于 06-23 17:56

    找STM32硬件开发兼职工程师

    上海做传感器的公司,找STM32硬件开发兼职工程师,会硬件开发,嵌入式软件开发,可项目外包。有意联系:15900460170
    发表于 06-22 19:12

    嵌入式软件工程师如何提升自己?

    ,可以为自己的职业生涯打下坚实的基础,并实现个人的职业目标。愿每一位嵌入式软件工程师都能在这个充满挑战和机遇的领域中取得成功!
    发表于 06-12 11:20

    嵌入式软件工程师和硬件工程师的区别?

    嵌入式软件工程师和硬件工程师的区别? 嵌入式软件工程师 嵌入式软件工程师软件开发领域中的种专
    发表于 05-16 11:00

    为何国外工程师偏爱使用for(;;)来实现MCU死循环?

    一位工程师发现,国外工程师在给demo在做死循环时用的是for(;;),而不是常用的while(1)。这仅仅是个人习惯的问题,还是有更深层次的含义?
    发表于 04-01 11:26 645次阅读
    为何国外<b class='flag-5'>工程师</b>偏爱使用for(;;)来实现MCU死循环?

    优秀电源工程师需要哪些必备技能?

    随着电源市场的不断扩张,开关电源行业飞速发展,企业对电源工程师的需求日益增加,对电源工程师的技能要求也日渐提高,相信没有一位电源工程师会错过让自己变得更优秀的机会。作为
    发表于 01-29 11:29

    嵌入式软件开发软件开发的区别

    嵌入式软件开发软件开发是两个不同的概念,它们在些关键方面有着明显的区别。嵌入式软件开发是指开发嵌入在硬件设备中的
    的头像 发表于 01-22 15:27 2285次阅读

    名嵌入式工程师的涨薪经历

    下面是一位嵌入式工程师的涨薪经历,希望可以帮助到你,帮到其他的在校学生。   阶段 1 大到大三这个阶段我与大多数学生相同:   、学习本专业知识(电子信息类专业) 二、学习嵌入式
    的头像 发表于 01-05 08:39 448次阅读