有点背景:我22岁,只有高中学位和很多空闲时间(大学没有成功).我是网络编程的新手,我在Photoshop,Illustrator,Dreamweaver,Fireworks和InDesign中学习了几天课程.看到这些只是日间课程,我绝不是他们中的任何一个,但我越来越熟悉Adobe课程.我的自由网页设计师老师告诉我,除了那些Adobe程序,如果我能学习HTML,XHTML,CSS,Flash和Java,那么我就能找到合适的工作.她还告诉我,如果我能在设计和编程两方面都做得好,我真的能找到一份好工作.
我只是想知道是否有人有一些建议或信息,基本上是一个从头开始并真正想进入这个职业的菜鸟.我已经在lynda.com上尝试着开始编程,我只是想把这些技能转化为工作.最好的情况是,最终我可以做自由职业者并支持自己......但这显然是非常遥远的.任何建议将不胜感激....
弄清楚大学出了什么问题 - 到了22岁,你应该已经毕业了,或者接近它
修理它!
焦点!
以新的焦点和决心回到大学 - 你现在有一个目标
如果问题是无聊的一般ed类,请查看CLEP测试以测试它们
如果问题是课程,请先参加您感兴趣的课程
如果问题是时间,请开始兼职
如果问题是学校选择,研究不同的大学 - 许多在线大学现在已经获得认证
如果问题是自律,那么自由职业者就不是一个好的职业选择
我不是说你不能做你所问的事,但你获得一份好工作的机会大大增加了学位,甚至是2年制学位.
显然,这不是唯一的途径,但它可以说是最简单的途径.即使你充满了才能和创造力,当你没有学位也没有经验时营销自己很难.(现在互联网更容易,但同样的道理,市场更加拥挤.)
祝好运!
我现在是一名软件工程顾问.熟悉以下列表可以帮助我在大学毕业后获得面试和录取通知书.
注意:HTML,XHTML,CSS ......这些只是标记语言,如果你把它们放在简历上,它们几乎不会被瞥见.Flash(不是那么多)和Java更令人印象深刻,但您可能希望查看以下其他主题/技术,以真正为简历增添趣味:
熟悉OO(面向对象)原则(继承,多态,抽象与具体类,封装等)
Java是一种很棒的开源初学者编程语言.我主要是.NET开发人员所以我倾向于支持这一点,但是我在大学期间开始使用Java并且很快就接受了它
.NET 2.0,3.5 - C#和VB.NET(LINQ,lambda表达式,匿名方法等) - 您可以从Visual Studio的Express版本开始,但最终可能希望获得完整版本
继续进行更高级别的编程概念,例如设计模式(MVC/MVP,命令,外观,适配器,列表继续) - 我推荐四人帮书(谷歌会告诉你它是哪本书)
数据库管理系统
学习SQL,熟悉JOIN,使用GROUP BY和HAVING子句,熟悉聚合函数
解决数据库设计概念(尤其是关系建模)
从免费的,如MySQL或PostgreSQL开始,然后......
专注于Microsoft SQL Server或Oracle(这些是大猫)
更深入地了解普通表格,数据仓库(OLAP,MOLAP,ROLAP,立方体等)
测试:研究单元测试和测试驱动开发
软件质量保证 - 缺陷预防技术等(这与下面提到的一些观点一致)
研究瀑布,敏捷和XP(极限编程)等方法,甚至可能是PSP和TSP
学习使用源/版本控制系统,如CVS,SVN和VSS(微软,不幸的是不是免费的 - 前两个是)
您可能会非常疯狂并了解静态代码分析,但绝对会考虑代码审查和代码检查
编辑:我以为我会给你一些书来检查(没有特别的顺序):
算法导论,第2版.Thomas H. Cormen,Charles E. Leiserson,Ronald L. Rivest和Clifford Stein,2002.
人工智能:复杂问题解决的结构和策略,第5版.乔治F.卢格,2005年.
Visual C++的第一本书.Gary J. Bronson,2000.
面向对象编程简介,Java,第3版(Java 1.5)更新.C. Thomas Wu,2004.
计算机科学数学结构,第5版.Judith L. Gersting,2003.
掌握需求流程,第2版.Suzanne Robertson和James Robertson,2006年.
数据管理:数据库和组织,第5版.Richard T. Watson,2006.
软件质量工程:测试,质量保险和量化改进,第1版.Jeff Tian,2005.
人工智能:现代方法,第2版.Stuart Russell和Peter Norvig,2003年.
实践中的软件架构,第2版.Len Bass,Paul Clements和Rick Kazman,2003年.
Java中的单元测试:测试如何驱动代码,第1版.Johannes Link和Peter Frohlich,2003年.
实用的PostgreSQL,第1版.John C. Worsley和Joshua D. Drake,2002.
PSP:软件工程师的自我改进流程,第1版.Watts S. Humphrey,2005.
TSPi:团队软件过程简介,第1版.Watts S. Humphrey,2000.
我想这就是我现在所拥有的一切.如果你能够解决这些问题,你的技能组合应该非常可靠,并且你将成为软件工程世界的另一个成员.我不确定你自己做的任何事情会给你与大学课程相同的知识水平,但我相信这是一个好的开始.这是一个沉重的名单; 如果获得这些技能需要几年的时间,不要感到惊讶.
至于你的平面设计技巧,根据你发现自己的工作类型,它们可能比你的编程技巧更重要.除了任何技能组合之外,还要确保您的软技能得到完善,并确保您对自己的工作充满信心.
不要通过从您的设计程序导出到Web来创建网站.如果你看到自己在Fireworks STOP中创建切片和鼠标悬停效果,并用沉重而钝的东西击中头部.
学习XHTML和CSS并学好它们.尝试尽可能保持语义.
选择一个全包框架,建立一个像博客一样的Web应用程序.尽管我喜欢ASP.NET,但它并非全包.这是巨大的.它将把你引向各个方向.Java也是如此.尝试像Django或Rails这样简单的东西.
练习,练习,练习,并意识到所有你知道的都是垃圾,你需要变得更好.
回到4,直到你死去.
好吧,这可能不受欢迎 - 但是从我自己作为"自学成才"程序员的经验中得出.作为"程序员/网络开发人员"在公司找工作的底线约为"0%"而没有某种类型的学位/认证/在职经验.
您可能已经注意到该问题的"问题" - 没有学位或证书,您如何获得"在职经验"?欢迎来到真实的世界".
我成为开发人员的道路始于"欲望"......并且正在做一些其他工作(如果你必须知道半导体制造业).我自己学习编程作为一种"爱好",并不断寻找将其应用于我的工作任务的方法,以提高我的"工作绩效".我最终申请的职位会让我更接近"编程",以便更好地利用我不断增长的技能,直到我有足够的"工作经验范例"来申请程序员职位.
这需要"8年".无论你如何看待大学,在一个学位上获得与计算机科学相关的"任何"学位都会减少一半.你可以自己做,但是除非你有一些关于如何使用编程技巧来解决"真正的商业"问题的优秀例子,否则你不会被考虑任何拥有"刚刚失学"学位的人.当你最终做到这一点时,你会注意到那些不知道杰克解决"业务问题"的"刚刚失学"的人可能会以比你更好的薪水开始.
现在环境可能比我开始时(25年前 - :-)更好,但同样的一般原则适用 - 学位可能并不意味着你知道如何编程,但它会让你通过"HR"筛选过程所以你可以得到这份工作.:-)
祝好运 ...
创建一个实际上对您有用且非平凡的项目:例如论坛或留言板或职位发布网站.
但这里有重要的部分:给自己一个坚定的截止日期.你可以做很多,比方说,4周,如果你按照时间表这样做
第1周的数据库后端
第2周登录系统
第3周发送消息
等等,你可以广泛地涵盖许多相关的主题.你的项目不会很漂亮,但如果你开始成为一个完美主义者,你将永远不会完成它,并且最终只会知道你项目中技术的前半部分.
随着您获得更多经验,您可以回过头来改进或重写您做错的事情,然后您就拥有了能够准确反映您当前技能的投资组合.
学习HTML,XHTML,CSS,Flash和Java以及几个图形程序是一个非常高的命令.你会试图这样做而压倒自己.选择一个并学习它然后移动到下一个.获取一本书或搜索Stack Overflow存档以获取推荐的在线教程.
学习的最佳方式是选择一个项目并开展工作.然后在您找到需求时随时学习.最终产品不是最高质量的,但您将了解一切如何协同工作.