新手寻求有关编程的一般建议[关闭]


28

需要你们中的一些人回想一下您可能不擅长编程的时代...

现在(作为软件开发人员)在我的新工作已经几个月了,已经过了试用期。几乎没有编程经验(仅C ++),并且目前正在使用asp.net MVC和silverlight。因此,有一个公司正在开发的网站,我正在努力使其变得更好,消除错误等。

问题是-通过Visual Studio了解已经建立的系统/网站。我总是感到非常不知所措,从不知道我应该看这行的哪一部分,并且通常在了解全局时遇到很多麻烦。我发现Visual Studio本身很难掌握,更不用说asp.net框架了。

我给人的印象是,因为我的同事比我更有经验,所以他们得到了所有好的工作,而我却只能做些废话-这些工作甚至都不是模糊的编程。意味着他们在学习/创造更多,而我在学习/创造几乎没有。我越来越沮丧,什么也不想说。

我并不愚蠢,我已经阅读并实践了许多基本的编程概念……我只是被该死的框架所吓倒。我看着它,只是感到瘫痪。

结果是我一直在问老一辈的老家伙,他很生气,宁愿给我轻松/无心/非编程的工作,以避免浪费时间帮助我。然后,当我听不懂某些内容时,我会犹豫是否要问他,并试图确定是否会浪费时间。

我是那种慢慢地整理东西的人,但是对细节非常关注。我认为前者使我显得无能。

有人到达我的家乡,请说些有用的信息。...我害怕在几个月内失去工作或其他原因...


3
我首先从asp.net 开始assppider.com/tutorials duplexsight-training.net/microsoft等。我更喜欢快速学习视频教程。
Birey 2011年

3
通过阅读您的问题和下面的评论,听起来好像您是在随机分配的错误,目的是使您不致于忙碌并摆脱高级人员的烦恼。情况可能是所有“低垂的果实”都已被采摘,唯一打开的错误极难捉摸或难以捉摸。这些错误在ASP.NET中很常见,因此不要气disc。话虽这么说,听起来这听起来好像高层人士并没有太大帮助,但是仅仅工作了2个月,他们确实需要为您节省一些时间。听起来他们忘记了成为一名初级开发人员的感觉。
maple_shaft

2
仅凭一点C ++经验就能获得ASP.NET职位的荣誉。我预见您将来的销售和市场职业将有所变化:)。
CheckRaise 2011年

编程相似的另一种语言说话......而解决问题。一开始会很困难,因为这就像您要解决用德语编写的问题一样。
杰克·伯杰

Answers:


17

人们应该做的新员工工作流程

  1. 最初看代码
  2. 小错误修复
  3. 更大的错误修复
  4. 功能请求-在现有的拼图中添加一些内容
  5. 新事物-一无所有

匆匆赶往没有任何领域经验的绿色开发人员太快会导致太多问题。您将获得新手的东西,因为您需要获得新手的东西。

挂在那里


谢谢。尽管功能不多,我已经完成了第4名。通常是从头开始,而不是附加到现有系统上。
2011年

14

首先是第一件事。你是新手。您将得到废话作业。有没有周围的方式。您必须了解这不是恶意的。就像您自己所说的那样,这些家伙拥有更多的经验和技能。他们也可能处于较高的薪资等级。从项目的角度来看,这意味着他们的时间是宝贵的,比您的宝贵。因此,他们可以做更多最前沿的(和有趣的)任务,而让您完成更多平凡(但仍然很重要)的工作。

现在,重要的是不要永远陷入困境。尽一切可能使自己熟悉手头的项目和工具。死后可以玩扫雷。我知道学习一个新平台以及跟上一个现有项目的步伐是一个巨大的前景。诀窍是将其切成小块,然后一一解决。在你的鞋子里,我会做这样的事情:

  • 在工作中,首先要弄清楚整个应用程序的一般体系结构。无需进入细节。只需确定主要的代码块即可;即用户界面在哪里?哪一部分访问数据库?业务决策是哪一个?不要害怕问周围。向他们表明您渴望学习,人们通常会向往。如果周围有好的(最新的)文档,请使用它。
  • 既然您已经了解了主要部分,那么该深入一下了。尝试从两端开始。然后,用户界面或数据库层将您带到另一端。大致看一下您正在学习的内容。感受一下它是如何工作的。它公开什么功能和方法。详细信息可以稍后再说。做大量笔记,绘制图表和流程图,做任何有助于您日后查找的事情。
  • 只有当您了解逻辑在应用程序中的流动方式时,您才可以真正开始查看代码。这是您熟悉Visual Studio的好时机。右键单击代码中的任何对象/功能,您将获得一个非常有用的上下文菜单。“转到定义”和“查找所有参考”特别有用且功能强大。如果命令对您来说似乎很神秘,请单击F1。
  • 在家里或有空的时候,请阅读有关ASP.NET MVC和Silverlight(或最终使用的任何平台)的更多信息。具体来说,请阅读更多有关您今天在工作中所见到的内容的信息。
  • 随着您对平台和项目的了解不断增长,您最终将看到越来越多的机会为代码做出贡献。抓住那些时刻!

如果这看起来很麻烦,那是因为。但是,您最终将获得的股息不仅仅是足够的报酬。


+1提供有关如何解决OP问题的实际有用建议,而不仅仅是同情的鼓励。如果可以的话,我会再次投票。
greatwolf 2011年

5

我给人的印象是,因为我的同事比我更有经验,所以他们得到了所有好的工作,而我却只能做些废话-这些工作甚至都不是模糊的编程。意味着他们在学习/创造更多,而我在学习/创造几乎没有。

您对此有多确定?我作为一个人问,一般来说,当您开始一些新的东西时,您可能会意识到各种学习的完成。您对Visual Studio的适应程度如何?我记得在1998年刚开始工作时从头开始学习IDE相当令人恐惧,但是从某些方面来说这是一个有趣的时期。您对错误跟踪软件的了解程度如何?您对团队中所有不同人员的想法有多好?您可能正在学习的东西不止几个,尽管您可能不认为它们是要学习的大东西。

我的建议是考虑与一些同事或您的老板谈谈您做得有多好。他们可能会说:“是的,您还不错。”或“您真棒!” 这可能是您必须接受的东西,尽管有些人可能只是在说,因为他们害怕说实话。同时,认识到这是您找出自己站着的位置然后对其进行处理的地方。在这里呆了几个月,您应该了解一些事情,因此能够比第一周做得更好。


就像“修复此错误,应该只一行”,然后我花了很长时间才发现我认为该行应该去哪里。

我已经听说过,而且在我的职业生涯中已经说过数十次了。关于这条线,我要提出几个不同的观点:

  • 这可能是一个估计值,因此该人可能已经忘记了一些古怪的案例,这些案例使该解决方案成为少数几行。我知道我曾经有段时间认为:“应该以某种方式在一行代码中完成”,后来才发现我错过了什么。

  • 某些代码行可能非常复杂。有没有看过其中是否有数十个方括号来执行一些逻辑,而该逻辑花了几次时间才能正确读取条件?我知道我有

考虑一下您现在拥有什么样的应用程序图片,以及如何看到不同的部分组合在一起,代码通常使用哪些约定,使用了哪种开发方法以及在各种过程中使用了哪些工具,例如持续集成服务器,是否有故事板等


当然,我比以前强很多,但是我仍然觉得自己没用。就像“修复此错误,应该只一行”,然后我花了很长时间才发现我认为该行应该去哪里。不过谢谢 目前,我正尝试尽可能多地阅读一些东西,尽管并不总是很容易确切地知道我应该阅读什么!
2011年

4

这需要时间。几个月是很短的时间。除非您认为当前公司没有未来,否则我会给它更多的时间。

处理现有产品是很常见的。事实上,与全新系统相比,您将更经常这样做。改进已经投入生产的现有系统需要大量技能。那不一定是坏事。

祝你新工作顺利。


5
同样,在全新系统上工作并不一定要全力以赴。错误修复可能会令人沮丧,但是它具有很多优点:您应该做的事情更加清楚,截止日期更加宽松,并且您将学习如何使用他人的代码,这是非常有价值的。
millimoose 2011年

是的,我知道从错误修复中可以学到很多东西...我想这让我感到沮丧,因为我遇到的许多错误恰巧是我可能不知道如何压缩的错误-在asp.net中,这与主项目设置/web.config/一个我不知道其存在的缓存文件。基本上,很多事情似乎还是“魔术”……
user974685 2011年

@ user974685这就是为什么我认为ASP.NET项目从一开始就很糟糕的原因,因为作为框架,它的唯一意图是使开发人员难以捉摸和透明。它试图隐藏HTTP的自然请求/响应无状态性质,并使其对开发人员像Win Forms应用程序一样。实际上,当您遇到缓存错误时,甚至是高级开发人员,都可能会感到奇怪的图形故障。
maple_shaft

@maple_shaft:您所说的关于ASP.NET隐藏Web的本质的事实对于ASP.NET WebForms是正确的,但对于ASP.NET MVC(user974685所使用的)则不正确。ASP.NETMVC实际上非常擅长您以无状态的方式编写网络应用。
赫克托·科雷亚

@Hector抱歉,我错过了用户说他们正在使用ASP.NET MVC的问题。
maple_shaft

2

继续提问,但也要表现出主动性;在问之前尽力而为。这有点像在Stack Exchange上提问。


2

在asp.net上(也可能在.net框架上)拿一本好书,并在工作时间彻底阅读它们。阅读它们后,您将对工作充满信心。在您正在学习的内容上进行实际工作也很棒。在您继续阅读时,该代码对您来说很有意义,因此阅读也会变得更加有趣。您应该充分利用当前的时间,不会有很多任务要执行,因此请明智地使用此时间。


2

我想我可以说很多话,说一会儿,我想知道我过去的自我是否已经转移到未来,向我现在的自我问这个关于程序员的问题。如果他在你的鞋子里时与他面对面,这就是我要告诉我过去的自我:

不要气Disc-这将很困难,有一天您会讨厌自己在做什么,并希望自己成为一个园丁或其他非编程人员。振作起来,尘土飞扬,然后继续前进,因为您会变得更好,而您所做的工作也会变得更好。

使用StackOverflow和Google-不必成为“复制和粘贴程序员”,但要意识到,SO和网络上的其他人都愿意,愿意并乐意为您提供帮助的聪明人。此外,SO答案或博客文章不会对您发牢骚,或者如果您继续阅读以确保您理解它,那么它们不会使您看起来很脏。

不断提出问题 -只要您尽自己的一份力去弄清楚自己能做什么,向具有更多知识和经验的人寻求帮助就没有错。如果您的同事想成为一个混蛋,请找一个更愿意帮助您的同事,或者像其他人所说的,与他或她一起提出来,看看他们怎么说。在这种情况下进行一点交流可以大有帮助。

继续努力 -不要放弃。编程很困难,但这是它的部分回报。学习新的工具,框架,语言,范式等需要大量的时间和精力。但是这是值得的,因为每次您做的更好时,通过这种学习经验来做的动作将为您做好准备下次您面对它时。与第一份工作相比,我正在使用更大的代码库,但是由于我一直在学习,因此能够更快地上手。

给自己点荣誉 -您已经成功地将C ++经验转化为使用ASP.NET MVC和Silverlight的工作。您正在寻找程序员的栈。您正在努力并尝试着做得到更好的事情。您正在做正确的事情,并且由于您能够完成编程工作,因此您已经在其中做了很多工作。坚持下去,它变得更加容易。

寻找一些可以做的事情 -进行太难,太平凡的编程,或者任何会很快削弱您对工艺的享受的编程。找到一个除了工作之外还可以自己完成的项目,这个项目虽然没有什么挑战性,但是可以保持您的兴趣并使您对编程感到兴奋。如果您认为这份工作不适合您,那么它不仅可以使您免于讨厌编码,而且您编写的每一段代码都可以帮助您提高技能,个人项目在简历上看起来不错。

抱歉,这听起来太像个鼓舞人心的话题了。我刚刚去过你的鞋子,我知道它的感觉。希望这里的人们的建议和其他建议对您有所帮助。哦,还有另一件事-您从以下这一行开始了您的问题:

need some of you to remember back to a time when you might have been bad at programming...

我还是!我们都是!我们只是继续努力,每年努力减少吸食


1

编程中的每个人都会遇到这种情况。面对已经使用多年的复杂系统,即使是具有多年经验的程序员也将获得大量的学习曲线。几乎没有所需的全部知识就能从事一项工作。除非您正在相对较新的公司/部门或非常简单的系统中进行100%新开发,否则您可能会感到不知所措。


1

我认为您的关注确实有效。但是你不必太担心

作为新员工,您当然会得到没人要做的任务。就像剩下要做的任务一样,任务更加机械化和令人不快。

我真的感到您很痛苦,因为这里的每个人,例如我,都已经去过那里。您需要的是快速做事,并尽力做到最好

这样一来:人们会看到您可以做越来越难的事情,您确实在尽力而为,您将真正提高自己,这将使您表现得更好,并留下正确的印象。

也要耐心点。这需要一些时间,但值得。


1

忍耐。20年前,当我还是新手时,他们将我送回服务器机房,以重新启动一直崩溃的路由器。快速提示:要在已有代码的情况下学习新框架,请尝试在现有表单中添加另一个字段,然后将其影响一直传递到数据库中。通过跟踪该表单上已有的另一个字段的值。您将学到很多。


0

在您的选择中,包括:寻找不会被期望扎根的工作。并非每个公司都是入门级工作的好地方。一家大型的咨询公司(例如Dell或Accenture)可能是一个令人难以忍受的棘手难题,可以作为一名普通程序员留在这里,但他们应该拥有扎实的培训计划和资源,以您的学习方式来应对员工的日常工作。

结果是,对于您当前的雇主而言,您很可能是错误的雇员,反之亦然。虽然失业是一个令人恐惧的提议,但最好是减少损失。

当然,我并不是说您应该放弃。您很有可能只需要更多时间来克服难度曲线中最糟糕的部分,并到达一切“点击”的地步。

其他随机观察结果:

我总是感到非常不知所措,从不知道我应该看这行的哪一部分,并且通常在了解全局时遇到很多麻烦。

有了经验,使启动新项目的脚步变得更容易的主要原因是因为您将使用所说的系统组成的大部分内容,因此它们并不是真正的“新”系统。没有“一般经验”,只是熟悉许多概念,框架和工具,并利用与您熟悉的事物有关的问题。对于一个入门级的程序员来说,要想拥有一个平凡的系统是很正常的。(对于有经验的程序员来说,如果他在具有足够新知识的系统上工作。编程是一个复杂的野兽,并且大多数程序员都有一个“舒适区”。)


0

编程是一个永无止境的学习过程。我不会研究会使您变得更好的方法,但是我会解决那种感觉不知所措的感觉,去过那里,偶尔还是会觉得那样。在学习IDE的同时跳入一个大项目,正在使用的技术需要大量处理。我从事的工作是第一次使用VS 2010,C#,WPF,SQL Server和MVVM。因此,如果没有大量的Google搜索,一切都会变得很容易。

考虑一些事情-您已经过了试用期,所以他们喜欢您的工作。他们相信您是员工。他们还知道您是新手,并不希望您通过开放VS来吸收10年的经验。他们会让你成长。您是一项投资和一项资产-他们不希望您失败,并且如果您表现出进步和渴望,他们将使您不断取得成功。

就“恼怒”的高级人员而言,他100%错了。如果您在问之前表现出对工作的热爱和研究,他没有理由感到恼怒。成为领导者的一部分就是领导-有人会说这是很大的一部分。=)如果他的榜样很差,那么他们选错了男人(或女人)。与他一起探讨这个主题,并让他知道您感谢您的帮助。开发人员可以是好客的类型,通常可能会有点自己。如果他有问题,请与您的经理谈谈。再说一次,您是资产,有人通过不帮助而阻碍了团队成长,从而阻碍了您的成长。

最重要的是-不要流汗。如果您付出努力并且喜欢自己的工作,那可以保证您会变得更好,并有一天或一个这样的领导团队。如果他们很聪明,他们会给你咬一口,让你可以咀嚼。

最后-我已经6年了,仍然在学习。有时候,当我不立即“得到它”时,我会对自己有些失望。我和您一样,只需要告诉自己:“冷静点,世界没有终结。为了上帝的缘故,它是.Net。


0

首先,接受您不擅长编程的事实。如果您不想接受它,那么它将成为一个问题。你是菜鸟 务实。对自己诚实。期。公认?然后继续阅读。

其次,向自己(以及其他任何人,我重复一遍,除了你,没有其他人)证明你不再是菜鸟,并且可以破解,制作和调试最肮脏,最残酷的代码。您可以排在榜首,通过向自己证明自己已经不再是菜鸟了,期望您的好老板能拿到更高的薪水。

现在,让我们来看看实际的答案:在紧张的工作时间,家人,空闲时间之间,您应该怎么做呢?是。我知道这并不容易。我做的方式。到目前为止,我认为它是最有效的:

正确 掌握基础知识:OOP的概念应整合到您的大脑中。

空中的设计规范(代替城堡) 我知道这听起来很疯狂,但是将汽车的车轮视为功能有助于人类的大脑适应编码世界!

先在纸上练习! 我的教授告诉我这个把戏。首先在纸上练习。干运行您的程序在纸张上。它将帮助您进入编译器流程+它将打开您大脑中的那些逻辑门。

是的,设计您自己的项目 。它是一个基于CLI的计算器。设计自己的代码。使其独特。为什么是您自己的独特程序?因为它会迫使您思考“我应该怎么做?” 并不要强迫你感到沮丧。当您有疑问时,请问赫伯特·希尔德(Herbert Schildt)(如果拼写不正确,请原谅我)或Google或在此处提问。这是自我学习和提高技能的最佳方法。

当我被介绍给C时,我也度过了一段糟糕的时光。特别是在结构n指针n Blahs n blahs中。我加班学到了这些东西。然后,当我伤心时,我没有失去希望。我买了一本参考书,开始制作我一直想要的程序。3个月后(是的,您可以大笑!),我终于制作了一个程序的CLI版本,该程序将您的姓名作为输入,并将您的个性作为输出。医音学。

是。我吹牛是因为我为此感到自豪!因为我看到了曾经嘲笑我的前辈的面孔。这是我朋友的全部决心!编程不是火箭科学!如果真是那样,那么您将不会经历试用!这简单!

我的个人信念:如果您的大脑中有逻辑并且了解常识,那么您可以成为一名优秀的编码人员。

好消息是,你们两个都有!因为如果您不想拥有它,那么您就不会通过与我们分享您的问题而采取正确的步骤!

如果您现在感觉良好,我很高兴。是的,您现在可以忽略此答案的第一行。那么那时是必需的。现在不需要!干杯!


0

免责声明:我认为您的问题尽管是特定于程序员的,但所有领域的新专业人员/从业人员都面临着。我的意思是,在最初的几个月中,没有人知道任何事情,而且新手总是会遇到最糟糕的任务(除非这些任务太关键)。

您可能不擅长编程的时代

我还是很不好 没有第二个想法。

我的印象是,因为我的同事比我更有经验。

再次提醒您,每个球员都是一个球童。为了使一件好事继续存在,您首先必须证明自己在不喜欢的事情上的价值,这在所有领域都是普遍的,而不仅仅是编程。

我看着它,只是感到瘫痪。

是什么让您感到瘫痪?害怕自己又回到了框架另一个时间,或者你只是讨厌它完全看?

始终尝试将您的问题分解为一个或多个简单步骤。然后分别继续进行。除了继续挂在这里,这里没有魔术子弹,这很重要。

掌控一切

作为新来的家伙,你面临去了解问题的工具,你的工作(VB,ASP等)和东西你的工作(该框架)。这是自然的。我们都面对它。您的主要优先事项应该是继续前进。

继续学习语言,不断提问,继续研究框架,然后重复!

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.