我是一个嵌入式软件开发人员,在移动设备上有大约5+年的工作经验。我最近丢掉了工作,嵌入式领域的大多数工作(我遇到的)都需要安全许可,而我没有资格这样做。因此,出于这个原因,同时也是为了学习一些新知识,我计划转向web开发(Web服务或任何使用数据库的有意义的应用程序等)。
请指导我应该考虑哪些因素来决定我应该选择哪种技术(MSFT / Java相关/ LAMP)。如果可能,还可以为可能在现实生活中应用的项目提供建议,以及我应该为这些项目分配多少时间(因为这些天我有很多计划外的时间:)。
谢谢。
发布于 2009-04-04 17:17:43
你有没有考虑过linux内核开发?在消费电子领域,有许多公司需要具备linux驱动程序开发知识的软件工程师。对于有很好的嵌入式经验的人来说,这是一个非常容易的过渡,也很有趣!
更好的是,Linux Driver Development的书可以在线免费获得。
发布于 2009-04-04 08:41:35
我通常会说,你应该利用你在为动力不足和内存不足的机器编程方面的经验。然而,web开发是一个非常不同的领域。Web服务器通常会有更多的计算能力和内存。
无论是走台灯还是其他方式,都需要一种不同的计算范式。您通常会花费更多的时间来集成多个进程(数据库、脚本语言、web服务器),而不是真正提高速度和效率。这种转变并不是那么容易。
因此,就像前面的答案所说的,你可能想要考虑走移动web开发路线。您可以获得openmoko/iphone/gphone开发工具包并开始实验。任何你能得到的东西(并且在你的预算之内)。
发布于 2009-04-04 13:57:20
首先,意识到如果你改变了,你就完全重新开始了。你可以过渡到iPhone、安卓或塞班,但我不会拿你的生计作赌注,除非你习惯了自由职业的工资和报酬。这取决于你的个性和机会。
其次,在你想要工作的地区建立一个网络并在其中工作。友善,安静,具体:你的机会很可能与你认识的人以及他们想要帮助你的程度有关。太多在屏幕前度过一生的程序员忘记了雇主和客户都不是编译器。对我好点!
从最基本的角度来看,您可以查看本书中的PHP/MySQL winestore:
Web Database Applications with PHP and MySQL
这是一个相当循序渐进的方法(如果旧的话)来学习基于web的程序做什么,以及如何完成它的方法。不要担心AJAX和其他Web2.0的东西,直到你掌握了基础知识;在我看来,这只会让你感到困惑。
Atlassian构建了用Java编写的基于web的问题跟踪软件,它有一个开源开发工具包和30天的试用期。如果你想看一些代码并在一个相当发达的领域工作,你可以尝试一下:
http://confluence.atlassian.com/display/DEVNET/
Web开发是一种不同于嵌入式的技能,尽管如果您使用Python或Ruby,您可能会找到一种方法来利用您的能力来专注于细节和故障排除。Web编程本质上是将一堆不同的系统和协议连接在一起,我认为嵌入式可以做到这一点,但在一个更受限制的环境中,选择要少得多,恶作剧的主导权也有限。
通常,基于厨房水槽语言(PHP、Java、C#)的web编程似乎是在解决问题,所以理想情况下,你会找到一种方法来利用你通过一种基于性能而不是花哨的语言所获得的技能。然而,Java和C#的位置要比Python多得多,所以要小心选择你(痛苦)的毒药。
如果你想进入创业/中低端领域,PHP是不错的选择,而Java/C#会支付更高的费用,但情况通常会有很大不同(企业/商业环境就是它们)。
您可能会考虑获得Java或C#认证( PHP证书是个笑话)。他们不会给你一份工作,但是因为你已经有了知识,只是不在你想要改进的领域,证书课程将帮助你转换你的工具集和术语,并解释目的。一些雇主也关心这一点。
Java Certification (Sun school)
C# Certification
对于一些有趣的、类似Python/Ruby的东西,可以考虑选择Groovy,它是一种基于Java的解释型语言。
http://groovy.codehaus.org/
如果你想学习Java,这是一个很好的资源列表:
Essential Java resources
https://stackoverflow.com/questions/716540
复制相似问题