我具有IT背景,并且非常有信心,直到有机会进行编程(C#)的工作。我之前从未编程过,而我正在编程的软件是我从未使用过的程序(3D建模软件)。
从那以后已经六个月了,我想放弃。我没有接受太多的培训...在过去的6个月中,大约进行了3周的培训。
我认为我会擅长编程,但是这种经验使我重新考虑了自己的决定。我不确定是我还是这种挫败感是正常的。
如何确定编程是否适合我?
我具有IT背景,并且非常有信心,直到有机会进行编程(C#)的工作。我之前从未编程过,而我正在编程的软件是我从未使用过的程序(3D建模软件)。
从那以后已经六个月了,我想放弃。我没有接受太多的培训...在过去的6个月中,大约进行了3周的培训。
我认为我会擅长编程,但是这种经验使我重新考虑了自己的决定。我不确定是我还是这种挫败感是正常的。
如何确定编程是否适合我?
Answers:
关于编程,需要注意一些事项。
首先,您将永远不会对编程一无所知。您可能甚至永远也不会几乎不了解任何事情。而且,如果您开始以为自己知道一些知识,就会有新的事物出现,而您所知道的东西将会过时。
因此,您需要经常学习新事物,并教自己要做什么,这样才能行得通。如果您不愿意花费大量时间进行大量的学习,研究和通过“受过教育的反复试验”弄清楚事情,那么就不要开始编程了。
其次,重要的是逻辑,而不是语法。仅学习语言,框架或技术并不一定能成为一名优秀的程序员。您确实需要一种能够理解代码背后的逻辑的头脑-这些部分如何组合在一起,将使用哪种逻辑以及计算机将如何解释您的代码。
听起来您正在使用一种软件和一种语言,但是请记住,那里还有更多的语言和技术。不要根据您对其中之一的经验来判断它们。如果语法让您感到沮丧,那么请记住,总是有其他选择。但是,如果您在掌握代码背后的逻辑时遇到问题,那么编程可能不适合您。
最后,不要选择您讨厌的工作。当然编程可能会令人沮丧,但它也可能会非常有益。如果您可以应付一些需要在代码上碰壁的事情,或者沮丧地删除计算机上的所有内容,并且仍然喜欢编码,那很好:)
... programming can be frustrating, but it can also be very rewarding.
我将其称为编程专业的“过山车”效应。最低点很低,可能很快出现,可能很难爬出。但高潮令人叹为观止,而快感令人上瘾。
我的朋友多年来一直是常旅客,但他一直想成为一名飞行员。有一天,他趁机驾驶了波音747。大约六个月后,他觉得自己像是放弃了:他以为自己会擅长飞机,但是最近六个月的经历使他重新考虑了自己的决定。
我当然是在开玩笑:我没有这样的朋友。这是有充分理由的:任何一家航空公司都会疯狂地让某人控制747飞机,然后再花数年时间驾驶塞斯纳飞机,然后再飞行数年,使用多引擎飞机,然后再飞行数年。然后进行了几个月的747全面培训。
我编造的故事的重点是,即使是最简单的3D建模程序包,也将相当于软件开发人员所驾驶的747飞机。即使在业界经历了一,两年之后,许多程序员也会对此感到恐惧。感到沮丧是不足为奇的:您以当前的技能水平执行了错误的任务!
你该怎么办?首先,我要退出3D建模商店,参加在线或编程方面的实际课程,并让自己成为一个宠物项目,您可以在业余时间从事这项工作。完成课程后,请尝试在生产商业应用程序,移动应用程序或复杂网站的商店中获得入门级职位。在工作中尽可能多地学习,并在家中练习以进一步提高技能。几年后,您将可以回到自己的3D建模公司,并在那里工作,而不会感到丝毫沮丧。
您可能没有选择学习编程的最佳途径:)
认真地讲,即使对于有经验的程序员来说,3D建模也是一个非常复杂的领域,因此,要成为第一个项目就很难了。我建议您自己买一些好书并从事简单的项目。如果您喜欢这些工作,请继续插拔电源,然后您便会到达那里。如果您不喜欢这样,那么可能是时候减少损失了。
我不会开始讨论最佳编程书籍,但是我认为您会在SE上找到许多有关编程参考的问题。
FWIW,我从2.x开始就在MS Windows中进行编程,如果我跳入现有的3D建模项目,我想我也会感到沮丧:)
作为一个相当新手的软件开发人员,我自己(从事了两年的兼职工作)使我前进的是长远的眼光。
我开始的每个新项目中,我对如何顺利进行处理都有更好的了解。每种新语言都变得越来越困难。我的解决方案开始变得更加完整。
这是我作为程序员必须继续进行的工作的清单:
除此之外,我认为有很多原因喜欢编程,而您做得越多,您就会越有机会在这种富有创造力和非重复性的领域中工作。
编辑:如果您遇到问题,请尝试确切指出问题所在,然后将其带到Stack-Exchange站点之一,如果您的问题尚未得到回答,那么您肯定会得到一个很好的答复。从长远来看,阅读一些有关编程范例,软件工程和算法的结构化书籍也对您有好处。不过,大多数导入操作仍会继续编写代码-就像这里的大多数答案一样,请花一些时间来处理与您已经在做的事情无关的程序,即使这意味着您要编写自己的项目以在家中工作。
很简单:您喜欢这样做吗?如果您没有获得报酬,那么您是否会在业余时间以娱乐为乐?如果答案是否定的,那么编程可能不适合您。
这并不是说您无法学会做得足够好以至于无法从中受益。但是,如果您不喜欢它,那么您将永远做不到。而且,如果您不喜欢它,那又有什么意义呢?
我从12岁起就开始编程,之所以这样做是因为我想要。我那时才20岁(就读大学一半),那时我才意识到自己可以靠这个谋生。我做这件事只是因为我喜欢它。
我相信大多数擅长某事(任何事情)的人并不是因为他们具有先天的技能,而是因为他们对那件事不健康。
我的建议是花一些时间独自使用C#和进行一般的编程。
做一个小游戏。做一个简单的工具来整理照片。做任何事情。
如果您度过自己的个人时间,则可能会喜欢编程。如果没有,编程不是您的职业。无论哪种方式,请继续努力。
可以用于学习一些概念的资源:
我记得从Commodore VIC20上的汇编器开始。起初,我只是按照游戏杂志上发布的骇客指令进行操作,使我在Jet Set Willy上拥有无限的生命,或者我想作弊的一切。我有一种好奇心和向往,导致我想要创建自己的黑客程序,并了解它们的工作方式和原因。这导致我编写了第一个程序。
关键是我很困惑很长一段时间(不超过6个月,但我同意这可能是从3D建模开始的功能),但随后,一分钱突然掉了下来。我开始了解我编写的代码如何转换为CPU指令和内存引用,很快,我就可以编写出非常称职的汇编程序。当然,您现在的工作水平是CPU的20级以上,但是,我敢肯定,如果您有此能力,那么灯泡瞬间就会发生。
我想我重申的是当您创建真正协同的东西时,好奇心,学习和发疯的观点。
如果可以给出一个建议,那就是“坚持不懈地学习面向对象编程的基础知识”。祝好运。
你的沮丧是完全正常的。3周的培训很可能远远不够。您无法通过将薪水直接投入到一个困难的编程项目中来了解编程是否适合您。
如果您真的想知道编程是否“适合您”,那么请在业余时间学习一种新的编程语言,并进行一些业余编程项目。如果您喜欢这种经验(没有时间限制和工作压力的编程经验),那么编程就很适合您。
现在...无论特定的编程工作是否适合您...我个人都会倾向于否。与您的经理谈谈您的挫败感,并考虑获得一份更适合您当前技能的工作,或者有望获得更好的培训计划。我不知道您的具体情况的细节,但是在我看来,在没有提供足够培训时间的情况下雇用您担任该职位对您和公司都是不利的;如果他们不打算提供更好的培训,那么他们不应该雇用您。尽管如此,硬碰硬的学校还是任何一所学校。再次,最好的做法是与您的经理交谈,看看他或她如何评估您目前的表现并应对您的挫败感。
是我还是我沮丧?
您真正需要问自己的问题是:
a)您喜欢编程吗?b)一旦您的应用程序开始工作,您是否感到世界上最幸福的人?-如果您的回答是“是”,请别担心,只要继续学习并提高编程技能即可。
一般来说,3D建模- 就像游戏编程一样,在编程世界中是完全不同的领域。这可能会吓到您或不引起您的兴趣。别害怕,只要通过学习不了解的东西来保持动力。根据需要掌握和掌握的知识来设定短期和长期目标。
编辑: “ 3D建模软件”不是主流编程领域。因此,您可能会发现自己正在学习在其他领域(CRM,会计,医疗保健等)中未应用的非常具体的知识/技术。如果您发现“ 3D建模”没有意思,只需寻找编程的不同业务领域激发您的兴趣。
3D图形编程是一个利基市场,即使是最知名的软件开发人员也不愿涉足。我在OpenGL上做了很多工作,并且对此有第一手的了解。希望您的所有工作都涉及到更高级别的场景图的工作,但是如果您像我一样深陷其中,就可以了。对于新程序员来说,这就像婴儿正在奔跑……以100m的速度奔跑。
然而,奇迹的确发生了,所有的希望都没有丧失。
我相信您已经在这样做了,但是您不仅需要编写程序设计教程(这是迄今为止的最小挑战),还需要阅读有关3D基础知识和坐标系的知识。了解绘制多边形,平移,旋转(如果需要四分之一,上帝会帮助您),矩阵等相关的数学运算。
但是说真的,您确定要继续吗?对您来说更重要的是什么?这份工作还是全套头发?
我最近刚扔掉一本关于C#的书-因为它对我没有价值。
但我可以确认,挫败感和错误被视为“正常”。
虽然不是最后期限,但请放心。
另一方面-一旦像魅力一样起作用,它的确会很有趣。
取得非凡的成绩时-他们可能会称您“先生” :)
关于您的问题是否适合您-这取决于您是否想每天学习新事物-是否。另外,如果您有足够的耐心和螺母去解决问题。
我一直在使用TDD方法论-但这需要几年的时间来学习。进行为期3周的快速入门课程可能会让您无所适从,这全关于犯错并从中学习。
每个人都讨厌错误和故障-但是可以与它们一起成长。我的意思是,犯(甚至挑衅)错误不一定是一件坏事。
我可能给您的最好提示是,将事情分解成较小的里程碑。
因为如果您设定的目标完全无法实现-这就是造成挫败感的原因。
我学会了在任天堂SNES上进行调试-我像a头一样作弊,并且从控制台杂志中获得了金钱,为他们提供了新鲜的作弊技巧。后来我得到了Atari ST,学习了编写Omikron Basic的代码...我仍然在这里,目前是JS向导的自雇职业:)
正如您所描述的,您的情况是“以艰难的方式学习它” ...我还建议您使用比这更基本的应用程序来学习它。一个好的语言参考就是所有的需求,也许是很好的例子。
编程需要大量的精力和奉献精神,以使您知道自己在做什么,并且擅长于自己知道的事情。
为了使您真正获得成功,编程必须成为一种生活方式。而不是理想的职业。它需要发展成一种迷恋,这种迷恋始于电阻器,然后扩展到包括互联网的整个网络。
我个人建议您坚持使用它,因为我个人也很挣扎。在我开始全职学习计算机科学(大约每天12个多小时)之后的大约一年零几个月之后,我才真正能够像程序员一样思考。
我花了整整时间研究关于互联网的所有与计算机有关的内容。每当我不知所措时,我就利用编程的复杂性使我变得更加顽固和充满动力。我花了很多时间只是阅读别人的代码并在自己体内手动键入代码。每当我发现我不了解的东西时,我都会抬起头来。每天,我都越来越沉迷于强迫和迷恋。(我什至开始梦想着通过二进制与程序进行通信,太深了!Lmao)
这并不总是那么容易。我绝对觉得我一直都没有为此付出努力,但是有一天,我能够插手并开始疯狂地编码。我想象中的每一句,对我来说,才刚刚变得越来越有意义。一切开始融合在一起,直到几个小时后我才可以回去以更优化,更高效的方式重写代码。
之后,我再也没有怀疑自己是否有能力成为一名程序员。你必须真的想要它。没有多少人有足够的奉献精神来克服成长为计算机科学家所需的狂暴。
但是,当您实际上可以构建出源于您的创造力和创造力的复杂软件系统时,成就感所带来的回报远远超出了为获得成功而必须进行的努力。