如何确定编程是否适合我?[关闭]


22

我具有IT背景,并且非常有信心,直到有机会进行编程(C#)的工作。我之前从未编程过,而我正在编程的软件是我从未使用过的程序(3D建模软件)。

从那以后已经六个月了,我想放弃。我没有接受太多的培训...在过去的6个月中,大约进行了3周的培训。

我认为我会擅长编程,但是这种经验使我重新考虑了自己的决定。我不确定是我还是这种挫败感是正常的。

如何确定编程是否适合我?


11
你在任何地方的学生吗?很好奇,因为MS有一个名为DreamSpark的站点,您可以在其中获得Visual Studio,SQL和大多数家用计算机服务器。这可以使您有机会自己制作自己的软件,并自己尝试一些东西。此外,MS还有一个名为Channel 9的非常简洁的培训站点,上面有一些简洁的项目。我之所以只建议这样做,是因为如果您喜欢编程,那么其中一些实际上应该很有趣,而不是可行。
iMortalitySX 2012年

5
当这个机会出现时,您有什么理由利用它?
AakashM 2012年

1
@iMortalitySX:DreamSpark提供的工具是否与VS Express版本不同?
FrustratedWithFormsDesigner

4
@ User66414您的问题已吸引了几票赞成,因此我对其进行了略微编辑,以关注您似乎要问的主要问题,我认为这对本网站来说是一个好问题。如果我误解了您的问题,请随时回滚编辑:)
Rachel

2
@Rachel:也许我们需要启动请愿书,以从“所有问题均已解决”人群中保存StackExchange网站。:-)
沃伦·P

Answers:


87

关于编程,需要注意一些事项。

首先,您将永远不会对编程一无所知。您可能甚至永远也不会几乎不了解任何事情。而且,如果您开始以为自己知道一些知识,就会有新的事物出现,而您所知道的东西将会过时。

因此,您需要经常学习新事物,并教自己要做什么,这样才能行得通。如果您不愿意花费大量时间进行大量的学习,研究和通过“受过教育的反复试验”弄清楚事情,那么就不要开始编程了。

其次,重要的是逻辑,而不是语法。仅学习语言,框架或技术并不一定能成为一名优秀的程序员。您确实需要一种能够理解代码背后的逻辑的头脑-这些部分如何组合在一起,将使用哪种逻辑以及计算机将如何解释您的代码。

听起来您正在使用一种软件和一种语言,但是请记住,那里还有更多的语言和技术。不要根据您对其中之一的经验来判断它们。如果语法让您感到沮丧,那么请记住,总是有其他选择。但是,如果您在掌握代码背后的逻辑时遇到问题,那么编程可能不适合您。

最后,不要选择您讨厌的工作。当然编程可能会令人沮丧,但它也可能会非常有益。如果您可以应付一些需要在代码上碰壁的事情,或者沮丧地删除计算机上的所有内容,并且仍然喜欢编码,那很好:)


11
我会发布自己的答案,但我喜欢这个答案。我想补充一点,编程就是通过创建有效的东西来实现。如果您可以比较软件开发和维护(修补)服务器之间的感受,那么您将得到答案。另外,我强烈建议所有“动手”学习者尝试加入SCRUM团队,这样您就可以与其他开发人员紧密合作并快速学习(但您需要跟上进度)。
iMortalitySX 2012年

1
还要记住,您越擅长编程,就越有能力选择适合您的工作,而不是仅仅花钱的代码。
Zoot 2012年

7
... programming can be frustrating, but it can also be very rewarding.我将其称为编程专业的“过山车”效应。最低点很低,可能很快出现,可能很难爬出。但高潮令人叹为观止,而快感令人上瘾。
Ryan Kinal 2012年

1
美丽的写作。非常真实。令人遗憾的是,即使是人力资源人员也似乎并没有意识到,真正的软件从业人员可以在许多框架上表现出色,因为事实证明,他们已经将语法的领域超越了核心,逻辑(OOP,设计模式,等等)。
Glstunna 2012年

2
@RyanKinal我很确定程序员具有强迫性赌徒的几个特征。当您跌至低点时,很难折断,直到回到高处。通常,当您到达一个高点时,您所想到的就是到达另一个高点
。–

24

我的朋友多年来一直是常旅客,但他一直想成为一名飞行员。有一天,他趁机驾驶了波音747。大约六个月后,他觉得自己像是放弃了:他以为自己会擅长飞机,但是最近六个月的经历使他重新考虑了自己的决定。

我当然是在开玩笑:我没有这样的朋友。这是有充分理由的:任何一家航空公司都会疯狂地让某人控制747飞机,然后再花数年时间驾驶塞斯纳飞机,然后再飞行数年,使用多引擎飞机,然后再飞行数年。然后进行了几个月的747全面培训。

我编造的故事的重点是,即使是最简单的3D建模程序包,也将相当于软件开发人员所驾驶的747飞机。即使在业界经历了一,两年之后,许多程序员也会对此感到恐惧。感到沮丧是不足为奇的:您以当前的技能水平执行了错误的任务!

你该怎么办?首先,我要退出3D建模商店,参加在线或编程方面的实际课程,并让自己成为一个宠物项目,您可以在业余时间从事这项工作。完成课程后,请尝试在生产商业应用程序,移动应用程序或复杂网站的商店中获得入门级职位。在工作中尽可能多地学习,并在家中练习以进一步提高技能。几年后,您将可以回到自己的3D建模公司,并在那​​里工作,而不会感到丝毫沮丧。


9
很好,但是我不一定要退出。如果您的工作很辛苦,但是老板认为您需要时间来加快工作速度,那么这可能是一个很好的机会。同样,业务应用程序可能对3D建模没有太大帮助。我主要从事业务应用程序,如果尝试编写3D建模程序,我会完全迷失方向
恢复莫妮卡

22

您可能没有选择学习编程的最佳途径:)

认真地讲,即使对于有经验的程序员来说,3D建模也是一个非常复杂的领域,因此,要成为第一个项目就很难了。我建议您自己买一些好书并从事简单的项目。如果您喜欢这些工作,请继续插拔电源,然后您便会到达那里。如果您不喜欢这样,那么可能是时候减少损失了。

我不会开始讨论最佳编程书籍,但是我认为您会在SE上找到许多有关编程参考的问题。

FWIW,我从2.x开始就在MS Windows中进行编程,如果我跳入现有的3D建模项目,我想我也会感到沮丧:)


我同意。3D编程并不是在公园里散步。金融,医疗或技术领域的业务应用程序是您开始C#生涯的更好场所。
ROFLwTIME 2012年

指出3D建模的+1不是一个好的起点,IMO也是很多数学。我认为这是这里的主要内容,总是从简单的事情开始,当您尝试以太快的速度运行时,您最终将花费更多的时间(不是很奇怪吗?)
十八年

8

作为一个相当新手的软件开发人员,我自己(从事了两年的兼职工作)使我前进的是长远的眼光

我开始的每个新项目中,我对如何顺利进行处理都有更好的了解。每种新语言都变得越来越困难。我的解决方案开始变得更加完整。

这是我作为程序员必须继续进行的工作的清单:

  • 您应该并且能够自己学习。(即使用书籍,论坛,文档等)
  • 您想保持思想的井井有条-编程是一种将思维过程带到纸上(计算机)的方法。
  • 在不断处理看似无穷无尽的细微问题清单时,您应该具有足够的弹性,在解决这些问题之前首先需要确定它们。

除此之外,我认为有很多原因喜欢编程,而您做得越多,您就会越有机会在这种富有创造力和非重复性的领域中工作。

编辑:如果您遇到问题,请尝试确切指出问题所在,然后将其带到Stack-Exchange站点之一,如果您的问题尚未得到回答,那么您肯定会得到一个很好的答复。从长远来看,阅读一些有关编程范例,软件工程和算法的结构化书籍也对您有好处。不过,大多数导入操作仍会继续编写代码-就像这里的大多数答案一样,请花一些时间来处理与您已经在做的事情无关的程序,即使这意味着您要编写自己的项目以在家中工作。


4

很简单:您喜欢这样做吗?如果您没有获得报酬,那么您是否会在业余时间以娱乐为乐?如果答案是否定的,那么编程可能不适合您。

这并不是说您无法学会做得足够好以至于无法从中受益。但是,如果您不喜欢它,那么您将永远做不到。而且,如果您不喜欢它,那又有什么意义呢?

我从12岁起就开始编程,之所以这样做是因为我想要。我那时才20岁(就读大学一半),那时我才意识到自己可以靠这个谋生。我做这件事只是因为我喜欢它。

我相信大多数擅长某事(任何事情)的人并不是因为他们具有先天的技能,而是因为他们对那件事不健康。


1
不知道为什么有人反对这个。我完全同意。
2012年

例如,如果我想学习一些关于3D数学的很棒的知识,我可能会喜欢OP的工作,并且我喜欢学习3D系统及其相关的数学。哦,还有OpenGL或DirectX以及视频卡的详细信息。
沃伦·P

2

我的建议是花一些时间独自使用C#和进行一般的编程。

做一个小游戏。做一个简单的工具来整理照片。做任何事情。

如果您度过自己的个人时间,则可能会喜欢编程。如果没有,编程不是您的职业。无论哪种方式,请继续努力。

可以用于学习一些概念的资源:

http://msdn.microsoft.com/zh-cn/library/618ayhy6.aspx(C#参考)


2

如果您之前从未编程过,您的背景在哪里?如果只有宏或脚本可以自动解决一些难题,则大多数IT角色都将有机会编写一些程序。

您有权享有自己的情感。但是,更好的问题是您如何应对这种挫败感?您是否正在弄清楚事情并继续前进?您对正在进行的工作有何反馈?如果您得到的反馈很棒,那么您可能会对自己抱有不切实际的期望。另一方面,如果您得到的反馈很少或没有反馈,那么我可以理解有些恐惧。


2

我记得从Commodore VIC20上的汇编器开始。起初,我只是按照游戏杂志上发布的骇客指令进行操作,使我在Jet Set Willy上拥有无限的生命,或者我想作弊的一切。我有一种好奇心和向往,导致我想要创建自己的黑客程序,并了解它们的工作方式和原因。这导致我编写了第一个程序。

关键是我很困惑很长一段时间(不超过6个月,但我同意这可能是从3D建模开始的功能),但随后,一分钱突然掉了下来。我开始了解我编写的代码如何转换为CPU指令和内存引用,很快,我就可以编写出非常称职的汇编程序。当然,您现在的工作水平是CPU的20级以上,但是,我敢肯定,如果您有此能力,那么灯泡瞬间就会发生。

我想我重申的是当您创建真正协同的东西时,好奇心,学习和发疯的观点。

如果可以给出一个建议,那就是“坚持不懈地学习面向对象编程的基础知识”。祝好运。


2

您基本上没有受过任何培训,并且已经开始从事一个困难的项目。通常,人们甚至在开始非同寻常的项目之前就花了至少三年的时间学习东西。没有尴尬,也不意味着编程不适合您(如果您觉得太难的话)。

甚至我在编程的第四周都挣扎了:P


我花了几年的时间才能创建没有很多错误的非琐碎程序。一旦达到临界点,我的康复速度就会爆炸,这已经发生了好几次了。我记得当我刚开始突破时,可以用以前无法实现的方式将想法概念化。从那里到那里都是下坡路。
2012年

2

你的沮丧是完全正常的。3周的培训很可能远远不够。您无法通过将薪水直接投入到一个困难的编程项目中来了解编程是否适合您。

如果您真的想知道编程是否“适合您”,那么请在业余时间学习一种新的编程语言,并进行一些业余编程项目。如果您喜欢这种经验(没有时间限制和工作压力的编程经验),那么编程就很适合您。

现在...无论特定的编程工作是否适合您...我个人都会倾向于。与您的经理谈谈您的挫败感,并考虑获得一份更适合您当前技能的工作,或者有望获得更好的培训计划。我不知道您的具体情况的细节,但是在我看来,在没有提供足够培训时间的情况下雇用您担任该职位对您和公司都是不利的;如果他们不打算提供更好的培训,那么他们不应该雇用您。尽管如此,硬碰硬的学校还是任何一所学校。再次,最好的做法是与您的经理交谈,看看他或她如何评估您目前的表现并应对您的挫败感。


2

是我还是我沮丧?

您真正需要问自己的问题是:

a)您喜欢编程吗?b)一旦您的应用程序开始工作,您是否感到世界上最幸福的人?-如果您的回答是“是”,请别担心,只要继续学习并提高编程技能即可。

一般来说,3D建模- 就像游戏编程一样,在编程世界中是完全不同的领域。这可能会吓到您或不引起您的兴趣。别害怕,只要通过学习不了解的东西来保持动力。根据需要掌握和掌握的知识来设定短期和长期目标。

编辑: “ 3D建模软件”不是主流编程领域。因此,您可能会发现自己正在学习在其他领域(CRM,会计,医疗保健等)中未应用的非常具体的知识/技术。如果您发现“ 3D建模”没有意思,只需寻找编程的不同业务领域激发您的兴趣。


2

3D图形编程是一个利基市场,即使是最知名的软件开发人员也不愿涉足。我在OpenGL上做了很多工作,并且对此有第一手的了解。希望您的所有工作都涉及到更高级别的场景图的工作,但是如果您像我一样深陷其中,就可以了。对于新程序员来说,这就像婴儿正在奔跑……以100m的速度奔跑。

然而,奇迹的确发生了,所有的希望都没有丧失。

我相信您已经在这样做了,但是您不仅需要编写程序设计教程(这是迄今为止的最小挑战),还需要阅读有关3D基础知识和坐标系的知识。了解绘制多边形,平移,旋转(如果需要四分之一,上帝会帮助您),矩阵等相关的数学运算。

但是说真的,您确定要继续吗?对您来说更重要的是什么?这份工作还是全套头发?


1

我最近刚扔掉一本关于C#的书-因为它对我没有价值。

但我可以确认,挫败感和错误被视为“正常”。

虽然不是最后期限,但请放心。

另一方面-一旦像魅力一样起作用,它的确会很有趣。

取得非凡的成绩时-他们可能会称您“先生” :)

关于您的问题是否适合您-这取决于您是否想每天学习新事物-是否。另外,如果您有足够的耐心和螺母去解决问题。

我一直在使用TDD方法论-但这需要几年的时间来学习。进行为期3周的快速入门课程可能会让您无所适从,这全关于犯错并从中学习。

每个人都讨厌错误和故障-但是可以与它们一起成长。我的意思是,犯(甚至挑衅)错误不一定是一件坏事。

我可能给您的最好提示是,将事情分解成较小的里程碑。

因为如果您设定的目标完全无法实现-这就是造成挫败感的原因。

我学会了在任天堂SNES上进行调试-我像a头一样作弊,并且从控制台杂志中获得了金钱,为他们提供了新鲜的作弊技巧。后来我得到了Atari ST,学习了编写Omikron Basic的代码...我仍然在这里,目前是JS向导的自雇职业:)

正如您所描述的,您的情况是“以艰难的方式学习它” ...我还建议您使用比这更基本的应用程序来学习它。一个好的语言参考就是所有的需求,也许是很好的例子。


1

编程需要大量的精力和奉献精神,以使您知道自己在做什么,并且擅长于自己知道的事情。

为了使您真正获得成功,编程必须成为一种生活方式。而不是理想的职业。它需要发展成一种迷恋,这种迷恋始于电阻器,然后扩展到包括互联网的整个网络。

我个人建议您坚持使用它,因为我个人也很挣扎。在我开始全职学习计算机科学(大约每天12个多小时)之后的大约一年零几个月之后,我才真正能够像程序员一样思考。

我花了整整时间研究关于互联网的所有与计算机有关的内容。每当我不知所措时,我就利用编程的复杂性使我变得更加顽固和充满动力。我花了很多时间只是阅读别人的代码并在自己体内手动键入代码。每当我发现我不了解的东西时,我都会抬起头来。每天,我都越来越沉迷于强迫和迷恋。(我什至开始梦想着通过二进制与程序进行通信,太深了!Lmao)

这并不总是那么容易。我绝对觉得我一直都没有为此付出努力,但是有一天,我能够插手并开始疯狂地编码。我想象中的每一句,对我来说,才刚刚变得越来越有意义。一切开始融合在一起,直到几个小时后我才可以回去以更优化,更高效的方式重写代码。

之后,我再也没有怀疑自己是否有能力成为一名程序员。你必须真的想要它。没有多少人有足够的奉献精神来克服成长为计算机科学家所需的狂暴。

但是,当您实际上可以构建出源于您的创造力和创造力的复杂软件系统时,成就感所带来的回报远远超出了为获得成功而必须进行的努力。


1

我认为要问自己的唯一确定的事情是“你喜欢学习”。

通过这个简单的问题,您将知道编程是否很适合您。如果您不喜欢学习,那么不,您可能会不喜欢编程。编程是有关编写代码的5%,有关设计代码应如何工作的10%,以及有关学习如何编写更好的代码和进行更好的设计的85%。(这并没有改变!我已经编程8年以上,但仍在不断学习中!)

当然,现在您可以喜欢学习而不喜欢编程,但是既然您喜欢学习,那就尝试编写一些程序吧!但是,您不能放弃最初的学习曲线,尤其是现在拥有许多简单的语言。因此,出去写一些代码吧!


0

编程首先要解决问题。语言是次要的。一旦您承担了编写第一个程序的任务(顺便说一句,您不会自己第一次编写代码-因为它已经全部编写了)并找出难题...建立连接,您将知道然后就在那里,如果您想成为一名程序员。

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.