Javaプログラマは注意してください:あなたはどのように把握しようとしている、開発の黄金時代を築きますか?

Javaの業界で人気のAに言って - ゴールデンイヤー5、エントリーはプログラマから、仕事の選択肢の最初の5年間は、彼のキャリアを通して、キャリア開発および給与動向に影響を与えている日付。入力を完了するために、Javaプログラマが何をどのように、そして、彼らは驚き兄に変換されないことがありラインに入社し、これは彼らの専門的な知識ベースと問題の選択を含むプロセスである新人から、過去5年間把握する方法それの道路首長の促進?

2年 - 1との間に動作するように

この間、おそらくJavaのため、既に深い理解を持っています。エレガントなコードを書くまず、あなたが単独でにあなたのコードの能力を向上させる、コードの最適化を書き込んでデザインパターン、いくつかの本を見に精通する必要があり、第二に、あなたは同時作業に連絡しなければならない、あなたはより深く行くべき同時関連する知識を理解し、そして最後に、あなたが使用するいくつかの研究のフレームワークとJavaクラス・ライブラリを持っている必要がありますが、また、使用しているソースのフレームワークを含むソースJDKのいくつかの種類を、確認する必要があります。すべてのすべてで、この段階では、あなたがISを行う必要があり、基礎となるJavaクラスライブラリを理解し、Java、JDKとJVMは、関連性の高いコンテンツです。

Javaプログラマは注意してください:あなたはどのように把握しようとしている、開発の黄金時代を築きますか?

4年の間に - 仕事に3

あなたがこの段階にある場合は、研究のこのフェーズは、より多様になるので、コードの能力を高めるために正直非常に困難です。作業の最初の3年間では、このようなビッグデータ、分散キャッシュ、分散型メッセージングサービス、分散コンピューティング、ソフトウェアの負荷分散技術などの他の技術、過度を変化させて接触しなければならない、あなたのいずれか1つがあり、マスターである可能性がありあなたが潜在的にインタビュー大きな利点となります。あなたがいるのであれば、あなたは、必ずしもあなたの仕事で使用されていない技術で特に関心の綿密な調査を行くことができますが、それは適切でなければなりません。

Javaプログラマは注意してください:あなたはどのように把握しようとしている、開発の黄金時代を築きますか?

4で動作するように - 5年の間に

4〜5年働くプログラマは、その後、あなたは技術の問題に遭遇する必要があります。彼らの技術を向上させるために急いではいけない、この時間は自分の影響力を高めることであるのがより重要であり、あなたの雇用の背景を改善するために、いくつかのよく知られている企業に行くことを試みることができ、あなたはまた、より多くの人々に影響を与えるためにいくつかの技術的な記事を投稿することができ、あなたにも行くことができますgithubのは、オープンソースのプロジェクトを作成し、独自の製品を構築するために、あなたに属しています。この段階で学んだ技術は、問題が発生するのは簡単です、あなたは、具体的学術研究を行っている場合を除き、多くの場合、非常に少ない本当にあなたが徹底的に影響を研究している、ある程度に達しました。しかし、残念ながら、この手順を実行することはできませんほとんどのプログラムの猿は、それは科学者が行うです。主に影響力の影響を高めるためにこの時間は、あなたのためのより多くの機会を作成することができますので、あなたの最大の課題は、将来のキャリアのために準備するために、彼らの影響力を強化することです。

Javaプログラマは注意してください:あなたはどのように把握しようとしている、開発の黄金時代を築きますか?

私は、最近のシニアソフトウェアエンジニア、プロジェクトマネージャ、テクニカルマネージャー、プロジェクトマネージャー、彼はジュニアソフトウェアエンジニアとして働いていた、8年以上のソフトウェア開発業界に、ソフトウェア開発者のプログラマーとして2011年に卒業した友人がいます開発チームと年間で、就職の面接に参加しています。私はこれらの年の経験を共有することで、仕事に彼に尋ねた、異なるビューを探るためにそこに歓迎されています。

ソフトウェア開発の面で学生のために、私たちは自分自身の状況の第1の目的を理解しなければならない、企業のさまざまなタイプを選択するために良い仕事のキャリアを行うには、次のものを、明らかに今何を所有していると思います。例えば、ビットなしの現在の身体、待望の雇用は、技術的能力がより一般的である、あなたはアウトソーシング暫定人材を選択することができます。技術は、フィールドでの牛の技術になるために強い関心、希望を持っているような技術を専門に、あなたはインターネットのプラットフォームを選択することができますタイプ;特定の技術的な根拠があり、技術的なマネージャー、プロジェクトマネージャー方向の後に行ってみたい、あなたはアウトソーシングの種類を選択することができます。次は、プログラマのキャリア開発計画が前進特定の推奨を入れ再生されます:

あなたは明確なキャリアプランを持っていますか?

建築家の1、

任意のJava開発者のために、建築家の役割は非常に望ましいです。だから、プログラマや建築家との主な違いは何ですか?建築家は、より良いシステム分析と設計機能で、プロジェクト開発における豊富な経験を音と確かな技術システムを持っています。実際には、自分自身の学習を育てる読み、プロジェクトコードを成熟した最初のプログラマからの人々が恩恵を受けるようになります。第二に、フィールドでの経験から、分散システムの特性を理解するために、プロジェクトを行う際に、集中できるようにするにはパフォーマンス、スケーラビリティ、信頼性、可用性、およびその他の指標。

架构师是一个漫长的积累过程,大部分架构师的年龄在35岁左右,这个阶段就是程序员的黄金期。那么我们如何以一个架构师的标准来加强自己的能力呢?程序员要向一名架构师发展,需要进一步加强技能的修养。对于互联网公司来言,最重要的技能是对网络和分布式系统的理解,比较麻烦的是分布式系统,除了分布式,在现在大型互联网企业中,还需掌握高性能、深入浅出、性能调优、Spring、JVM等技术。当然,良好的驾驭管理开发团队的能力和人格修养,能够让架构师在开发项目中游刃有余,不会出现意外的干扰。

2、 走向项目经理

有一些程序员工作机遇比较好,不但负责项目的设计工作,而且还负责项目的管理工作,对项目经理这个工作有一定的尝试。因此,这类程序员可以审视一下自己,是否合适这项工作,如果自己对这种工作比较满意,而且具备项目经理的要求,则可以向项目经理这个方向发展。项目经理的工作重点已经从编程转移到对人、对技术、对进度、对项目的管理,因此,项目经理必须要了解软件开发的各个环节、了解开发的各种技术和运用、了解开发队伍人员的水平和特点。

在日常的工作和生活中就得逐步锻炼这方面的能力,其次,学习一些项目管理的知识,例如:PMP、CMMI、敏捷开发管理等。从程序员到项目经理可以使项目经理更好地理解程序员在项目中的地位和作用,了解软件开发的各种规律性的东西,从而保证项目的正常完成。而且,项目经理的收入在公司中的地位也是比较高的,因此,我认为走向项目经理是程序员的另一个发展空间。我想提醒一下,程序员在担任项目经理之前最好要把软件设计工作做好,这样在做项目经理的时候,就会有很好的基础。

3、 走向管理者

很多程序员希望自己能成为公司中的主管、经理、老总、老板,这样在公司无论是收入还是地位都相对高一些。另外,有些程序员可能厌倦了年复一年的编程工作,希望能摆脱这种步步紧逼的工作状态,走向管理者程序员要比一般人做更多的准备,做更多的转型工作。但是,如果你有这个志向,又积累了这方面的工作经验,可以努力往管理者发展。由于软件公司的管理者不同于一般公司的管理者,专业能力越强,管理起来就越得心应手,没有专业能力的管理,遇到的问题很多,也很难解决。 因此,我的建议程序员最好要把编程、项目设计、项目管理等基础打好,这样转型到管理者成功率就会高一些。

4、 原地踏步

当然也有程序员惰性比较大,安于现状,也无可厚非。对待这些程序员,我的建议是原地发展,把本职工作做得更好,把自己的技术水平再提高一步。在这个过程中他们的能力和自信心都会得到提高,他们的想法自然不会一成不变。不管做哪一行,都应尽早做好职业规划,人都需要有一个目标去激励自己,Java程序员更是如此,朝着一个目标逐步提升自身实力总会比原地打转好,相信聪明的你该知道怎么做。

据不完全统计,截至目前(2019.3)为止,中国Java程序员的数量已经超过百万。而且,随着IT培训业的持续发展和大量的应届毕业生进入社会,Java程序员面临的竞争压力越来越大。那么,作为一名Java程序员,怎样努力才能快速成长为一名高级的程序员或者架构师,这不仅是一个刚踏入职场的初级程序员,也是工作三五年后开始迷茫的老程序员,都必须要面对和明白的问题。为了帮助大家少走弯路,我总结出一个Java程序员的工作2-5年成长路线。

Javaプログラマは注意してください:あなたはどのように把握しようとしている、開発の黄金時代を築きますか?

Java程序员应该掌握的技术

1、通信协议

各个子系统之间要进行通信,必须要选择一种或多种通信协议,现代比较常见的是基于HTTP的协议。建议了解更多协议对于学习安全也有很大的帮助,比如MySQL和PostgreSQL的协议都有安全的设计。

2.、序列化

系统之间通过网络传输,或者存储到文件时,肯定只有一种格式,就是字符串。要将复杂的数据结构与字符串之间进行转换,就需要用到序列化,简单的序列化如JSON和XML,稍微复杂些的有protobuf、thrift等。需要了解所有这些序列化方式之间的优势和劣势。,比如JSON和XML只能用于传递数据,而protobuf与thrift还可以用来做RPC协议,至少要确保每种序列化方式都自己尝试过hello world。

3.、数据库

要形成自己的数据库选取风格,就需要先对自己常用的数据库有足够深入的了解。对于关系式数据库,除了一般的Create、Query、Delete、Update操作外,还需要能自行建立索引、数据库的平行扩展、了解如何进行性能调试,以及了解常见查询操作的性能级别、常见的查询性能瓶颈点。一个较好的例子是 "SELECT COUNT(*) FROM table WHERE dt_create-86400>NOW();" 。

4、 存储

存储分为几种类型。NAS等各家产品有所不同,大多是通过NFS来访问的,问题是NAS的价格很高,而且在去IOE的趋势中很多人也不愿意再用,所以经常会有基于文件系统建立小规模存储的需求。需要关注的是每个目录下的文件数不应该太多,当一个目录下文件数(实际是inode数量,包括文件和目录)超过1000时,性能就很差了。所以,建议将一个系统中要存储的对象ID做16进制,随后每2位16进制做成一级目录,这样可以确保每个目录下的文件数不会超过256个。现代云计算,如Amazon S3已经把存储的问题解决的很好了,如果可能,尽量用好。

5、应用框架

此事在各个语言之间各有选择,多注意了解自己关注方向的所有框架的优势和劣势,至少当有个毛头孩子问你为什么不选择某个最新的框架时,能清楚用自己的观点答复。对于常见的框架,十分推荐自己重新实现一个来当作锻炼,实现一个WEB框架,不到200行代码就实现了。

6、接口

主要是指接口协议,或者RPC协议。系统之间进行RPC调用很常见,注意选择自己能熟练使用的,并且有所深入研究,并了解其常见的限制。RESTful API就是个比较常见的选择,但是性能并不好,自己要对性能等参数有量化的了解,而不是简单的一句好或不好。短连接接口在三次握手时是串行操作,要了解其为何耗时。

除了要在如上的各种不可或缺的组成部分中有所了解,还要能清楚地知道一些常用系统模块的原理,并能够很深入的玩起来。几个值得注意的:

  1. HTTP服务器:常见的无非是nginx、apache,自己要能进行基本配置,包括静态文件、fastcgi转发等。

  2. 关系式数据库:常见的如mysql、postgresql、sqlite,自己要对每一种都有深入的了解,可以做一遍常见操作的性能测试,并牢记于心。比如sqlite虽然并不需要走网络,但是实际查询性能很差。

  3. NoSQL数据库:memcache、redis、mongodb等,近几年有很多,挨个了解其实现原理,以及各种常用操作的性能,当有需要时,随时能拿得出手来用。

  4. 云计算平台:几种常见的云计算平台的应用方式要有了解,如Google的资源方式和Amazon的Javaプログラマは注意してください:あなたはどのように把握しようとしている、開発の黄金時代を築きますか?,每种云计算平台往往还会提供一大堆附加服务,比如可靠数据库,存储,缓存等,也要分别有所了解。

  5. 加密/签名技术:常见如truecrypt、openssl、gnu pg、sha1、md5、scrypt等,了解各种加密/签名技术的安全性、字长等,并都能自己做过hello world。

那如何快速学习并精通呢?

针对当前互联网公司的技术需求以及结合主流技术,我自己整理了一套系统的架构技术体系,当你技术过硬的时候,能够解决技术问题才会服众。不少公司都很重视高并发高可用的技术,特别是一线互联网公司,分布式、JVM、spring源码分析、微服务等知识点已是面试的必考题,这些东西可能你们平时在工作中接触过,但是缺少全面系统的学习。

个人推荐分享一套全面的知识图谱,无论走架构,管理还是项目经理的路线这些技术你都应该有一定的了解及掌握!(迷茫的朋友可以参考下学习方向)

一、框架源码解析专题

应用框架spring

  • spring IOC源码解析
  • spring Aop源码解析
  • spring MVC源码解析
  • spring注解试开发
  • spring 5新特性

Javaプログラマは注意してください:あなたはどのように把握しようとしている、開発の黄金時代を築きますか?

ORM框架MyBatis

  • MyBatis 快速掌握
  • MyBatis 源码分析
  • MyBatis 徒手实现

Javaプログラマは注意してください:あなたはどのように把握しようとしている、開発の黄金時代を築きますか?

设计模式

  • 设计原则
  • 创建型模式
  • 结构型模式
  • 行为型模式
  • 设计模式对比及应用场景

Javaプログラマは注意してください:あなたはどのように把握しようとしている、開発の黄金時代を築きますか?

二、并发编程专题

  • JVM内存模型
  • 并发同步处理
  • 并发包之tools限制
  • 并发包之atomic原子操作
  • 阻塞队列BlockingQueue详解
  • 并发Map、List与Set详解
  • Executor线程池详解及核心源码剖析
  • ForJoin

Javaプログラマは注意してください:あなたはどのように把握しようとしている、開発の黄金時代を築きますか?

三、性能调优专题

JVM性能调优

  • JVM类加载机制详解
  • JVM内存模型
  • 垃圾收集机制详解
  • 垃圾收集算法详解
  • JVM调优工具详解
  • GC日志详细分析
  • JVM调优实战

Javaプログラマは注意してください:あなたはどのように把握しようとしている、開発の黄金時代を築きますか?

Mysql性能调优

  • Mysql索引数据结构深度讲解
  • Mysql 执行计划与索引讲解
  • Mysql锁机制与事务隔离级别详解
  • 慢查询Sql调优实战

Javaプログラマは注意してください:あなたはどのように把握しようとしている、開発の黄金時代を築きますか?

Nginx调优

  • Nginx快速掌握
  • 熟练掌握Nginx核心配置
  • 掌握Nginx负载算法配置

Javaプログラマは注意してください:あなたはどのように把握しようとしている、開発の黄金時代を築きますか?

Tomcat调优

  • 整体认知Tomcat项目架构
  • 生吃环境配置
  • 掌握Tomcat 线程模型背后原理

Javaプログラマは注意してください:あなたはどのように把握しようとしている、開発の黄金時代を築きますか?

四、分布式框架专题

分布式消息中间件

  • Rabbitmq
  • RocketMq
  • Kafka

Javaプログラマは注意してください:あなたはどのように把握しようとしている、開発の黄金時代を築きますか?

分布式储存中间件

  • Redis
  • MongoDB
  • FastDFS
  • Elasticsearch

Javaプログラマは注意してください:あなたはどのように把握しようとしている、開発の黄金時代を築きますか?

分布式框架

  • Zookeeper
  • Dubbo
  • ShardingSphere
  • Netty

Javaプログラマは注意してください:あなたはどのように把握しようとしている、開発の黄金時代を築きますか?

五、微服务系列专题

  • 微服务架构变迁史
  • spring boot源码剖析
  • spring cloud Netflix源码剖析
  • spring cloud Alibaba源码剖析
  • 虚拟容器

Javaプログラマは注意してください:あなたはどのように把握しようとしている、開発の黄金時代を築きますか?

六、项目实战专题

双十一电商平台

  • 电商项目架构设计及核心技术点整理介绍
  • 基于spring cloud微服务架构拆分
  • 电商平台技术解决方案

Javaプログラマは注意してください:あなたはどのように把握しようとしている、開発の黄金時代を築きますか?

分布式调用链平台

Javaプログラマは注意してください:あなたはどのように把握しようとしている、開発の黄金時代を築きますか?

七、互联网工具专题

  • Git
  • Maven
  • Jenkins
  • Linux
  • 虚拟容器

Javaプログラマは注意してください:あなたはどのように把握しようとしている、開発の黄金時代を築きますか?

最後に私が対応するビデオアーキテクチャのセットをまとめてきた上記の知見は、メモやインタビューみんなに(ダボ、Redisの、ネッティー、飼育係、春の雲、分散、並行性の高いアーキテクチャ技術データを含む)Zhentiのコア、我々はしたいですヘルプ、だけでなく、あなたが教材を探して時間を節約!

入手先:

インタビューファイルアクセス:

同様に交換基を学ぶの小さなシリーズの+後方ポイント懸念小さなシリーズ:909 666 042は、無料の情報を受け取ります!(あなたの昇進と昇給を支援するために)

彼らの学習を強化するために自分の時間の毎分の使用の合理化は、彼のイデオロギーの怠惰を非表示にするには、「何時間」を使用しないでください!若い、ハード戦いは、自分自身の将来のアカウントを与えます!

Javaプログラマは注意してください:あなたはどのように把握しようとしている、開発の黄金時代を築きますか?

Javaプログラマは注意してください:あなたはどのように把握しようとしている、開発の黄金時代を築きますか?

Javaプログラマは注意してください:あなたはどのように把握しようとしている、開発の黄金時代を築きますか?

Javaプログラマは注意してください:あなたはどのように把握しようとしている、開発の黄金時代を築きますか?

おすすめ

転載: blog.51cto.com/14570694/2458499