全部书籍  无广告阅读

初学者,新手,怎样才能入门且学好Java

版本:1.0.0
作者:马克-to-win
qq: 2115860679
群号:318255903
微信:mark-to-win
新浪微博账号:mark-to-win
腾讯微博账号:mark-to-win
免费java教材下载网址: http://www.mark-to-win.com
百度贴吧:http://tieba.baidu.com/f?ie=utf-8&kw=%E9%A9%AC%E5%85%8B%E7%A4%BE%E5%8C%BA


互联网企业的工作流程和方法给予java初学者新手的机会

 
   一个初学者总是慨叹,我现在就会一句System.out.println("HelloWorld");我如何有可能参与到一 个大项目中,比如像淘宝的项目那样,大家都用过淘宝,他有安卓,ios,wp8,电脑网页,而且网页是如此复杂,动态变化,数据量是如此之大,到底是怎么 实现的?成千上万的用户如果同时访问, 更新数据, 如何保证数据的consistency(一致性), n多个程序员是如何协作的,开发组和测试组又是 如何协作的?和数据库管理员。前端网页工程师如何协作的,运营人员和运维人员在整个项目组中,是如何和技术部门协作来满足数以亿级的用户的需求的,数以亿 级的用户产生的订单数, 商品信息更新,包括根据用户的偏好,呈现不同的相关商品的广告,所有的广告平台的cookie技术, 这些数据如何稳定的推送到 上亿部手机的安卓和ios, wp8 , blackberry系统中,如何保持住这海量的长连接,一个大项目是如此的复杂,我们是如此白的小白,我行 吗?未来的java之路到底怎么走?
   笔者的体会,千里之行始于足下, 就从 System.out.println("HelloWorld");持之以恒,你就可以有一天自己架构设计领导实现如上述之伟大的项目,当然如果机会允 许的话。 试想任何一个大项目的技术总监, 也一定是从helloworld开始的。
    那么一个伟大的项目的实现和我现在只会点入门的知识之间的鸿沟是如何跨越的呢?换句话说,我会这么点东西,将来怎么参与到项目组中实现那么伟大的项目 呢?一个大项目究竟如何出炉的呢?笔者还拿淘宝项目做一个例子,公司运营和市场人员在和客户的沟通中意识到如果能够根据不同用户的喜好呈现不同的新商品的 广告信息,那多好啊!于是就和产品经理协商讨论后,产品经理写出详细的产品需求来,之后项目经理牵头负责此需求,和技术总监碰实现项目的进度, 技术总监要和他下面的架构师组(前(电脑网页,安卓, ios, wp),后端服务器),前端页面主程(
电脑网页,安卓, ios, wp),后端服务器主程,产生solution(解决方案),主程主要从算法角度,给 出核心代码,主要是和其他项目组的数据交互接口部分,其他的就是他会把任务分解, 把相对简单独立的内部模块,拿出来, 交给他所带的底下的开发小组,一 堆中级工程师和更多的初级工程师,初级工程师负责简单的重复性强一点的工作,比如100个页面都要改一下, 中级工程师负责灵活度高一点的工作。需要强调 一点的是,有的人技术很好, 但由于对企业的业务不熟,照样得从初级工程师和实习工程师做起。什么是企业的业务? 比如登录这件事, 就是一个业务,但腾 讯公司的登录业务不但要看你的用户名和密码对不对,还要看你的号是否被别人举报过, 如果有劣迹, 一样登陆不了,还要看有没有人在其他地方正在登录,  所以如果你对他过去的业务或架构代码不熟悉,就算一个简单的登录你都做不了,不过不用担心, 有架构师, 和主程序猿帮你罩着呢, 你只要从初级工程师和 实习工程师老老实实做起,慢慢对过去的代码熟悉,你做的职位就会越来越高,薪水越来越高。java软件工程师是一个非常challenging(挑战)工 作,你得不断的学习新的知识和技能。回过头来,你看即使你是新人,只要你勇于从头做起,你还是有机会的。
          
咱们继续说项目的流程,开发完后,工程师进行自测后(主要初级工程师的工作,白盒和黑盒),进入和测试组打交道的阶段,测试组会根据产品经理的需求说明书 早写好测试用例,根据测试用例来人工集成测试你的新的需求, 所谓的alpha测试(黑盒的)和自动化脚本库来自动化测试你的系统的过去的 feature(特性)。包括手机端的,包括功能性的和性能的, 压力测试等,之后是uat测试,这其中任何时候有问题,工程师们改各自的代码, svn  或git, 之后整个重复上述过程,因为系统是如此的复杂,牵一发而动全身,所以每次改动后, 要整个重新全部彻查所有功能。 这就是为什么业内要强调 自动化测试和CI(持续集成)的道理。 我们经常发现有些软件原来是好的, 后来版本一更新, 新的功能能使用, 但有些老的功能, 反倒不能用了,这就 是自动化测试(黑盒白盒)没做好。 uat缺陷密度审核通过后,就是灰度上线发布(服务器多版本并存)和灰度测试,有问题, 工程师还得打回来重新刚才的 过程,通过后才是公测,之后才是稳定版本release(发布)。互联网企业不是大鱼吃小鱼而是快鱼吃慢鱼, 又得快, 又得稳,流程很关键, 初学者们 关注和你们相关的初级工程师们的工作。
  上面说了这么多, 初学者们, 我们的道路在哪呢?一个对我们有利的因素就是: 由于成本和同业竞争的因素,企业不能都雇主程序员,很多还得雇用我们初级的程序员,这样机会来了,我们就从初级开始,好好干,慢慢业务熟了, 相关的技术 也学会了, 就走向中级工程师, 毕竟总有新的需求,和主程的离职或公司的发展的因素, 这样我们就有机会往上升了。
 

java学习的方法是什么呢?   

        java软件工程师这个职业好处是不用拼爹,只要你不断钻研技术。你一定是java中自有颜如玉黄金屋的, 笔者见过很多,234岁, 月薪10k-15k的,他们共同的特点是,大三,大四就出来实习了,学习能力都非常强,跟了好师傅,公司里的前辈, 或者什么人,路选对了。问问他们怎么学的, 他们说就是泡在各路论坛,各路群中,跟各路有同样想法的人搞好关系,刚入群的时候,没人理他,谁也不认识谁,但是老发言,谁说话都凑上去说,当一个热心人 或者说好心人, 群里有了名了, 偶尔问个问题, 大家就爱答了,也有面子了,群加的多了, 论坛挂的多了,就自然被回答的几率大了,视频到处有,讲义也到处有, 就是问答, 麻烦一点, 只要能解决问答的问题, 就什么都不怕了。 java是个日新月异的技术,有些新技术,是上个月刚出来的新东西, 你必须得有随时能学新东西的能力才能在这个行业立足。有了自学的能力(看教材,视频,挂群, 挂论坛, 搜索的能力), 你将稳稳的立足于这个行业, 想想那些java老师, 或所谓的前辈, 不都是用这种方法无师自通的吗?
      
顺便提一句:名为“马克社区”百度贴吧, 是专业供大家讨论使用的, 而我顶上的微信微博, 是为了把我的书都拆成一段一段的让大家用碎片时间阅读使用的,百度关注:http://www.mark-to-win.com/SelfIntroducion.html

学习的路径是什么呢?          

 
     个人认为,
目前的形式, java已是最博大精深,最复杂, 涵盖面最广, 最受欢迎, 挣钱最多,最有前途, 最值得研究的语言之一,可以说当之无愧的语言之王 大学里开了这课和c c++ 但有别的课吗?随着android的深入人心,手机互联网时代的来临, 安卓的一家独大, java更是不可一世, 势不可挡!java好到 不用说,他都好的程度,这么博大精深,学习路径应是什么呢?
       
如果你是科班出身, c 的基础,恭喜你, 你已经有了学习成功的基础,如果你没有,你需要加强这方面训练,因为后面无论是多么大的项目,无论什么oo思想,面向接口的编程,aopioc,各路高 深的n 多种模式,其实编程目的都是要做一件事,都是一个业务, 所有其他的都是包装, 再复杂的业务都是一个面向过程的编程,所以把算法学好,把c 和数据结构学好。笔者就有一篇文章叫“java-c” 专门说javac的关系,有了c 基础,下面就是java oo的概念,和接口的概念, 这些概念c++都有, 所以科班出身的初学者, 就不用怕了,没有c++基础不用怕,好好读我的java--c++的文章即可,剩余内容,进入(纯免费观看)











                                                                                备案号:京ICP备2023022087