windows 现在的程序员应该具备哪些技能?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/294825/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-15 11:37:06  来源:igfitidea点击:

What skills should a programmer have nowadays?

windows

提问by Teej

I have been programming using PHP, Javascript and have been a designer for a few years in a company. I am thinking of leaving I am wondering what skills do I need to have nowadays to become successful.

我一直在使用 PHP、Javascript 进行编程,并且在一家公司做了几年设计师。我正在考虑离开我想知道我现在需要具备哪些技能才能成功。

采纳答案by Ian Varley

You seem to be inquisitive and interested in learning. That's qualification #1; things change fast in this field, and only the life-long learners survive.

你似乎对学习充满好奇和兴趣。那是资格#1;这个领域变化很快,只有终身学习者才能生存。

Next step would be to scour job boards in your area (Monster, Craigslist, Joel On Software Jobs Board, etc.) and keep track of the skills you see coming up a lot. That's probably a fairly good representation of what's "hot", at least near you.

下一步是搜索您所在地区的工作板(MonsterCraigslistJoel On Software Jobs Board等)并跟踪您发现的大量出现的技能。这可能是“热”的一个很好的代表,至少在你附近。

Then, you can check here on stack overflow by tags (e.g. PHPand javascript) and see if the kinds of questions that people are asking make basic sense to you (not that you need to know every answer, but if it sounds like Greek, you're probably not ready to get a job in that subject).

然后,您可以在此处通过标签(例如PHPjavascript)检查堆栈溢出,看看人们提出的问题类型对您是否具有基本意义(不是您需要知道每个答案,但如果它听起来像希腊语,您可能还没有准备好在该主题上找到工作)。

To more directly answer your question: there are web jobs out there for PHP and javascript, though a heavy dose of CSS and Ajax probably wouldn't hurt if you're going that direction. A design background will help if you want a general "webmaster" type job, but note that those are often NOT programming-oriented jobs, because most stuff you can do on an average website is typically better done with an off the shelf CMS (you don't usually need to reinvent the wheel unless the web site you're doing is highly functional in some way). As other posters have said, C# / .NET is probably good if you want something more corporate.

更直接地回答您的问题:有针对 PHP 和 javascript 的网络工作,尽管如果您朝那个方向走,大量的 CSS 和 Ajax 可能不会受到伤害。如果你想要一份一般的“网站管理员”类型的工作,设计背景会有所帮助,但请注意,这些通常不是面向编程的工作,因为你可以在普通网站上做的大多数事情通常最好用现成的 CMS(你通常不需要重新发明轮子,除非您正在做的网站在某些方面非常实用)。正如其他海报所说,如果您想要更企业化的东西,C#/.NET 可能是不错的选择。

The real question is: what kind of work do you like doing? What makes you happy? Find that and do it well, and you'll get a job. :)

真正的问题是:你喜欢做什么样的工作?什么让你快乐?找到并做好,你就会得到一份工作。:)

回答by Alan

It really depends on what you intend to do.

这真的取决于你打算做什么。

I believe the following skills are important for all types of "programmers" regardless of their chosen language.

我相信以下技能对于所有类型的“程序员”都很重要,无论他们选择什么语言。

  1. Accurate Estimation. Giving your boss accurate estimates makes their job easier, which makes your life much easier.
  2. Communication. Being able to communicate effectively to everyone you work with is a must.
  3. Knowing when to ask for help. Like you wrote, you can't know everything. I would rather have a developer ask a colleague for help, than try to spend days coming up with a solution.
  4. Design Patterns. Every developer needs to understand basic design patterns.
  5. Know a good scripting language. Perl, Python, Ruby, Bash, Powershell...take your pick.
  1. 准确估计。为你的老板提供准确的估计会让他们的工作更轻松,这让你的生活更轻松。
  2. 沟通。必须能够与与您一起工作的每个人进行有效沟通。
  3. 知道何时寻求帮助。就像你写的,你不可能什么都知道。我宁愿让开发人员向同事寻求帮助,也不愿花几天时间想出解决方案。
  4. 设计模式。每个开发人员都需要了解基本的设计模式。
  5. 知道一门好的脚本语言。Perl、Python、Ruby、Bash、Powershell……任你挑选。

回答by Nicholas Piasecki

I think one of the best assets a developer can have is to know how to use Google. Stay with me here.

我认为开发人员可以拥有的最佳资产之一就是知道如何使用 Google。留在我这里。

I've worked with people who just don't know how to search for pre-existing solutions. When faced with any software project, I've found that half of the problem is solved by simply knowing what to type into Google. I know of the existence of a lot of different technologies, how they're intended to be used, and general chatter about them that I've read on other people's blogs, but I've never actually used them and maybe never will. But when a problem that fits their description comes my way, I know what magic words to type into Google and what to start learning next for that particular project.

我曾与不知道如何搜索预先存在的解决方案的人一起工作。当面对任何软件项目时,我发现只要知道在 Google 中输入什么,就可以解决一半的问题。我知道存在许多不同的技术,它们打算如何使用,以及我在其他人的博客上读到的关于它们的一般闲聊,但我从未真正使用过它们,也许永远不会。但是,当遇到符合他们描述的问题时,我知道该在 Google 中输入哪些神奇的词,以及接下来要为该特定项目学习什么。

The other half of the problem is deciding what to take away from those Google results. CodeProjectis a fantastic site to explore, and sometimes you'll hit an article that addresses your problem head on. Sometimes, you'll be able to use the provided code directly in your project (I did this with a Windows Forms LED digit control that I got there), but most of the time, you'll just take away the ideas of the article and use it as a guide to apply to your project. Sometimes you'll look at an article and decide that the person doesn't know what they are talking about. Being able to assess the quality of, use, adapt, or simply be inspired from existing blog articles, libraries, and snippets is an invaluable asset.You don't have to understand all of it--you can't know everything, you have to draw the "magic line" somewhere--but it's important that you're able to tell what looks well-written and what looks slap-dash and error-prone.

问题的另一半是决定从那些谷歌结果中拿走什么。CodeProject是一个很棒的探索站点,有时您会找到一篇直接解决您的问题的文章。有时,您将能够直接在您的项目中使用提供的代码(我使用我在那里获得的 Windows 窗体 LED 数字控件做到了这一点),但大多数时候,您只会带走文章的想法并将其用作指南以应用于您的项目。有时,您会查看一篇文章并确定此人不知道他们在说什么。能够评估、使用、改编或简单地从现有的博客文章、库和片段中获得灵感是一项宝贵的资产。你不必全懂——你不可能什么都知道,你必须在某处画出“魔线”——但重要的是你能够分辨出什么看起来写得很好,什么看起来很糟糕-破折号且容易出错。

So, to that end, my best advice is to just load up your RSS reader with feeds from people who are working in the technologies that you are interested in. You don't have to read every individual posting, but you'd be amazed at how much you can pick up by just zooming by them all and glancing at the headlines each day.

因此,为此,我最好的建议是在你的 RSS 阅读器中加载你感兴趣的技术人员的提要。你不必阅读每个人的帖子,但你会感到惊讶您可以通过放大所有内容并每天浏览头条新闻来了解多少。

To me, things like the programming language aren't really that important. I started with C++, dabbled in Java, worked for two years in PHP, and have been living and breathing C# for another two. You can learn a programming language in a week. But learning the frameworks and idioms commonly used with that language, however, can take years, so for any such framework you can be sure that there will be some jobs somewhere involved with it. After bouncing around for awhile, you'll find one that you like (mine is the .NET world), but you'll still know your way around the others. So pick your poison, but keep reading to stay aware of what's out there. A well-indexedprogrammer can easily become a well-roundedone because he'll know how to go about tackling new problems that come up outside of his comfort zone.

对我来说,编程语言之类的东西并不是那么重要。我从 C++ 开始,涉足 Java,在 PHP 中工作了两年,并且已经在 C# 中生活和呼吸了两年。你可以在一周内学会一门编程语言。但是,学习该语言常用的框架和习语可能需要数年时间,因此对于任何此类框架,您可以确定在某个地方会涉及到一些工作。经过一段时间后,您会找到自己喜欢的一个(我的是 .NET 世界),但您仍然会了解其他人的方式。所以选择你的毒药,但继续阅读以了解那里有什么。一个索引良好的程序员很容易成为一个全面的程序员一是因为他会知道如何解决在他的舒适区之外出现的新问题。

Hope some of that makes sense.

希望其中一些是有道理的。

回答by TravisO

A portfolio of your work, lots of pictures, very short descriptions. PHP isn't as popular in the corporate world, but it does exist. You might want to consider learning JSP or C# ASP.NET to keep your options open.

您的作品集、大量图片、非常简短的描述。PHP 在企业界并不流行,但它确实存在。您可能需要考虑学习 JSP 或 C# ASP.NET 以保持您的选择。

Different companies have different needs, webdesign shops will be focused heavily on design and how fast you can make a site (usually using a framework). Corporate apps will be concerned with things such as bug fixing, testing, support multiple languages, using 3rd party controls.

不同的公司有不同的需求,网页设计商店将重点关注设计以及您制作网站的速度(通常使用框架)。企业应用程序将关注诸如错误修复、测试、支持多种语言、使用 3rd 方控件等问题。

回答by Johannes Schaub - litb

All you need is a finished study and capability to learn new things easily. They can't expect you know everything they tell you to do. But if you can learn well, that's going to be fine.

您所需要的只是完成学习和轻松学习新事物的能力。他们不能指望你知道他们告诉你要做的一切。但是如果你能好好学习,那就没问题了。

That's what i have been told in university. I think it holds true.

这是我在大学时被告知的。我认为这是正确的。

回答by wusher

Learn test driven development and unit testing and have solid knowledge of a few javascript libraries.

学习测试驱动开发和单元测试,并对一些 javascript 库有扎实的了解。

回答by Hot Licks

Basically, you need to understand that programming is not a lazy man's profession, even though it isfar too sedentary. It requires thought, and it requires practice, and it requires patience. If you think you can learn a bunch of cookbook approaches and suddenly be a programmer, you're sadly mistaken.

基本上,你要明白,编程是不是一个懒惰的人的职业,即使过于久坐。它需要思考,需要实践,需要耐心。如果你认为你可以学习一堆食谱方法并突然成为一名程序员,那你就大错特错了。

(Though, unfortunately, many managers are convinced that there arecookbook solutions and base their hiring on what buzzwords you can recite. But you asked what skills a programmer shouldhave, not what he needs to know to be hired.)

(不过,遗憾的是,很多管理者都确信,食谱的解决方案,并根据他们雇用什么流行语,你能背诵。但是,你问一个程序员什么技能应该有,他需要知道被录用不算什么。)

回答by Dean Rather

If you already know PHP and Javascript, ensure your CSS and MySQL skills are up-to-scratch. The four make a nice package.

如果您已经了解 PHP 和 Javascript,请确保您的 CSS 和 MySQL 技能是最新的。这四个包很好。

回答by Steve B.

In web development, at least (where I've mostly worked) there's often a division between front-end and back-end skills.

在 Web 开发中,至少(我主要工作的地方)通常在前端和后端技能之间存在分歧。

I'm speaking of coding here, so by "front-end" I mean things like css and javascript. There's often a fuzzy line here between design and coding, so people working on the front-end often have a bit of coding skill, a bit of design skill.

我在这里说的是编码,所以“前端”是指 css 和 javascript 之类的东西。设计和编码之间通常有一条模糊的界限,所以在前端工作的人通常有一点编码技巧,一点设计技巧。

Back-end tends to be more java, or .net (most common for web, at least by the job ads I've seen) with a bit of python, ruby, php, and other. Likely the skills in the latter will more often land you in a smaller place. It's been my observation that the back-end skills are likely to pay a bit better. You might do well to look for somewhere where you'll do a bit of the front and a bit of the back and look to transition to doing more of the programming-type work.

后端往往是更多的 java 或 .net(最常见的网络,至少我见过的招聘广告)带有一些 python、ruby、php 和其他。后者的技能可能会更频繁地让您处于较小的位置。根据我的观察,后端技能的薪酬可能会更高一些。你最好找个地方,在那里你会做一点前端和一点后端,然后过渡到做更多的编程类型的工作。

Of course "success" is a very personal thing, so please disregard everything written above, and best of luck.

当然,“成功”是一件非常个人的事情,所以请忽略上面写的一切,祝你好运。

For some actual hard data, here's one site that ranks languages by popularity in job postings (there are others) http://www.langpop.com/

对于一些实际的硬数据,这里有一个按职位发布中的流行度对语言进行排名的网站(还有其他网站) http://www.langpop.com/