【问题标题】:Which web framework for someone who wants a job?哪个网络框架适合想要工作的人?
【发布时间】:2010-12-07 05:19:58
【问题描述】:

我想学习一个能够促进良好编程实践并受到编程社区尊重的框架。

但是,我还想要一个可以用于日常工作的框架。

你会推荐哪个?

这个问题来自于我学习 Django 基础知识的经验,因为它在 Stack Overflow 和 Hacker News 上得到了开发者的高度评价。但是.. 在我所在的地区(纽约市)几乎没有任何工作需要 Django 开发人员。

【问题讨论】:

  • 遗憾的是,“良好的编程实践”和“日常工作”并没有像我们希望的那样重叠。

标签: ruby-on-rails django frameworks web-frameworks


【解决方案1】:

作为一名长期从事 ASP.NET 工作的人,我最近经历了一个类似的决策过程,以确定我应该尝试哪些其他 Web 框架。以下是我到目前为止所学到的,也可能适用于你的情况:

  • 框架/平台选择(以及由此产生的工作机会)具有很强的区域性——湾区的就业市场与纽约、芝加哥、蒙特利尔或伦敦的就业市场大相径庭。查看当地的职位列表(craigslist 确实是不错的起点),以了解需求。
  • 同样,使用量因公司的规模和类型而异。如果你想在大公司找到一份工作,Spring MVC 和 ASP.NET MVC 可能是你最好的选择。在小公司中,DJango 和(尤其是)Rails 似乎正在崛起。
  • 用法有时也会因行业而异。例如,许多 HR 应用程序似乎是基于 .NET 的,而金融/银行应用程序似乎更喜欢 Java。如果您想在特定行业工作,请查看该行业的新兴公司正在使用哪些公司。
  • 在将您的宝贵时间投入到学习新事物上时,请选择采用曲线呈上升趋势的技术(例如 Rails),而不是采用更广泛、可能不会增长得那么快的框架。还要警惕可能永远不会被广泛采用的非常早期或小众的框架。
  • 大多数(或几乎所有)越来越流行的框架之间的一个共同点是它们是 MVC 框架,并且严重依赖于对 REST 的扎实理解。深入学习这些概念是个好主意。
  • 在决定在一个框架上投入大量时间之前,先对其中几个框架有一个基本的了解,这样您就可以合理地了解自己喜欢什么而不喜欢每个框架——因此,如果您最终使用未学过的框架申请工作,至少您将能够明智地谈论它。
  • 如果您专注于自己喜欢的事情,您就会更有动力去学习它。例如,我个人发现 Rails(不管就业机会如何)比 Spring 或 Django 更有趣,所以我决定首先关注 Rails。其他人可能有不同的印象——跟随你的程序员直觉。就是说,通常很少有工作使用您认为令人着迷的技术,因此请尝试取得适当的平衡:您喜欢的技术,许多公司实际上正在招聘人员使用!
  • 一旦您回答了基本的“什么框架”问题,就会出现更多问题,包括选择 javascript 框架、验证框架、ORM 等。不要太担心这些选择——开始时,只需为您的框架选择默认实现。但是随着你的进步,关于框架的相同论点也适用于其他事物——例如。了解一些 ORM 很有用。

就个人而言,我决定采用这种方法:

  • 继续用我最熟悉的 (ASP.NET) 构建东西,但将所有工作都转移到 ASP.NET MVC,在那里我可以更好地理解 MVC 和跨平台应用的 REST 概念
  • 学习 JQuery(同样,平台中立)
  • 暂时放弃 ORM 选择 -- 有太多其他事情需要担心
  • 在 Rails 中构建了一些项目,这是我看到的在我一直在关注的新 SF-Bay-Area 初创公司中使用最多的框架
  • 了解有关 Python/Django、Java/Spring 和 Groovy/Grails 的基础知识(例如阅读一两本书,尝试一些示例)。

【讨论】:

    【解决方案2】:

    我在很酷的小公司遇到过使用 Django、Ruby on Rails 和(eiuw!)甚至 Zope 的真实项目。 .NET 适用于天线宝宝——我只听说过它被不了解的大公司使用。

    【讨论】:

    • 我同意 .NET 的使用在我居住地附近的小型初创公司中相对不常见(尽管因行业而异)。也就是说,例外是常见的。例如,我最近听说一家本地初创公司在 .NET 上运行一个受欢迎的网站,开发人员可以在该网站上提出编码问题并快速获得答案。现在,如果我只记得那是哪个网站....有人知道吗? :-)
    【解决方案3】:

    我会说,知道两个或三个比知道一个被广泛使用的要好,因为您将更好地理解它作为一个概念是如何工作的。例如,如果您只使用过 Java,那么您对 ​​OOP 的理解中可能会缺少一些东西,因为您被固定在以一种方式思考它。如果你已经了解 Django,虽然你 Spring 可能会是一个很好的赞美。

    【讨论】:

      【解决方案4】:

      我可能会说 ASP.NET MVC。我总是看到很多 .NET 工作,这似乎是一个可靠的框架,我认为它实际上为所有 stackoverflow 系列提供了动力。作为一名 PHP 开发人员,我还必须提到 Zend 框架,它被包括 bbc.co.uk 在内的许多大型网站使用,现在在 PHP 工作广告中经常被提及。

      【讨论】:

      • 周围有很多 .NET 作业,但它们没有使用 MVC 框架。开发人员倾向于远离老式的 .NET,至少与我交谈过的那些人一样。他们已经跳槽到 Django 或 Rails,旧的东西似乎有些可怕。
      【解决方案5】:

      我想学习一个能够促进良好编程实践并受到编程社区尊重的框架。但是,我还想要一个可以用于日常工作的框架。

      很抱歉在这里带来坏消息,但这两个愿望往往会发生冲突。恕我直言,大多数业务经理倾向于在 CRM 或其他更高级别的基础上进行(丑陋的)快速发展3rd 方代码库。从头开始构建优雅的网站主要发生在初创公司或真正的网络公司中,其中网站是唯一的产品。这些公司并不多。许多看似合适的内容实际上是一团糟,即由于时间压力、混乱的遗留代码和许多其他原因,您通常无法按照“良好的编程实践”进行编写。

      我同意 Kaleb Brasee 的观点,即 Java 和 .NET 是优先考虑工作可用性的两个主要平台。

      每个就业市场都是独一无二的,因此请查看您所在地区的职位空缺,或致电少数招聘人员,询问他们认为需要什么/可以轻松地将您置于初级职位。我看到的是 Microsoft Sharepoint 很受欢迎,而其他一些区域 CMS 也很受欢迎(在丹麦,我经常看到 Sitecore)。

      我认为 ASP.NET MVC 2.0 与 MVC AreasASP.NET Dynamic Data 一起将有一个很好的故事,一个很好的解决方案,对于许多想要快速发展的老板来说。而且我认为生成的代码可能还不错,或者至少与现有的许多“CMS 被打成其他东西”的网站相比还不错。但这对于 .NET 平台来说是一个全新的东西,需要先卖给决策者……

      底线:如果您首先需要工作保障,那么看看像 Sharepoint 这样的大型 CMS,并在业余时间研究其他技术。您可以选择在初创公司/后来成为网络公司;但在你跳跃之前先看看。

      【讨论】:

        【解决方案6】:

        你试过 Spring MVC 吗?许多公司确实将 Java 用于 Web 应用程序(或 .NET)和基于 Web 服务的应用程序。

        【讨论】:

          【解决方案7】:

          既然您提到了 Ruby on Rails,您可能想学习 Ruby on Rails。它有一些很好的编程实践和一个经过深思熟虑的架构。 Ruby 社区本身(在我个人看来)也创建了非常创新的框架,并且非常支持测试和质量。您可以通过 Cucumber、webrat、should、cana、rspec、test/spec 等创新测试框架看到这一点。许多初创公司也使用 Rails 作为他们的平台,所以你应该更容易找到工作。您可以开始查看Working With Rails37signals job board。所以 Rails 和 Ruby 社区内部有一个很好的生态系统。

          但 Rails 与 Django 相比的缺点主要是有太多的魔法(不太明确)并且文档不如 Django。如果你想获得一份 Django 的工作,请尝试查看几个新闻网站,因为 Django 是从一个报纸网站成长起来的,所以它在基于新闻的网站中被大量采用。

          【讨论】:

            【解决方案8】:

            我会推荐 ASP.NET MVC、Ruby on Rails 或 Python/Django,它们似乎都很流行和成功,并且基于 MVC 范式,当涉及到网络时,这绝对是适合这项工作的工具.

            【讨论】:

              【解决方案9】:

              .NET 和 Java 是迄今为止雇主使用的两个最大平台,因此在寻找工作时需求最大。 Java 有一些流行的框架,JSF、Spring MVC 和 Struts 的需求似乎都差不多。我不使用 .NET,但据我所知,ASP.NET 和 ASP.NET MVC 是主要的。

              【讨论】:

                【解决方案10】:

                我想说,这里提到的大多数框架都促进了良好的实践。但这并不一定意味着使用这些框架的公司实际上正在遵循这些良好实践!事实上很可能不是。所以不要期望太高。

                您会看到,Stack Overflow、Hacker News 等网站是与真正关心自己手艺的人建立联系的好方法。可悲的是,这是少数。世界上有数以百万计的程序员。他们中的大多数都很烂。他们写的代码很烂。他们不在乎。他们对提高技能不感兴趣。他们只是想了解领取薪水、回家、喂狗、与家人共度时光、看电视、睡过头并在第二天再做一遍所需的最低限度。

                好吧,这有点苛刻 :) 我的意思是,您最好向您想工作的公司的一些经理提出这个问题。我的猜测是他们中的大多数人会回答 .NET 或 Java。如果您想笑,请问他们为什么选择该特定技术而不是其他技术,看看他们向您扔了多少流行语;)

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2018-06-28
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多