作为开发者,工作了半年,也总觉得技术栈和刚毕业区别不大,用的技术还都是N年前的,每每看到新东西,也只心里哇塞惊叹一下,然后就回归于忙碌。怪自己的技术池太浅,热门的令人称奇的技术也都是在其他巨人的肩膀上产生,但自卑还没够到巨人肩膀,便觉得新技术(相对于自己的技术程度)离我们好远,对它也无能为力,不了解能否解决当前的痛点?应用成本高吗?

就像爬山1W个台阶,站在9K台阶处的人就会觉得容易些,站在1k台阶处的就感觉高不可攀。勇敢迈出第一步,跟上前面登山的人。

经常会看见公司框架里那些前人写的代码,还是.NET早些版本1.0,2.0时代的,虽然语法还比较low,但设计却让人惊奇,身边也少见架构师可以求问学习。咱是从事GIS行业开发,可能着重在于GIS功能的开发,其实有点本末倒置。GIS只是开发中的一个插件,我们的根本应该还是要先把.NET玩溜,很多像性能瓶颈、版本兼容跨平台等问题也就迎刃而解。

有时候看不懂的设计代码就去查,当下明白了,某天又忘记了,也不会使用。网上资源太多只能用来解决某个特定问题,如某个bug,某个安装,这是你快速解决遇到的某个问题的好途径。系统的提升还是需要有个全局系统的知识脉络,像书籍,课程。在系统性的学习之后,会对.NET有个相对全面认识,工作中遇到的一些棘手问题,也都有对应成熟解决方案,根本不会说解决不了,只能曲线救国。很简单的功能设计因为认知不足,浪费大量的人力,设计出庞大难以维护的系统,这是开发者最不能期许的。

目前.NET很热很成熟的框架都用到高级语法(仅区别于基本语法),反射啊,委托啊、异步多线程啊,还有很多令人拍案叫绝的设计思想。不整明白以后更加忐忑,对新技术浅尝辄止也不会剖析更不敢应用到实际项目中,永远只是个旁观者只在山脚下叫苦

想起大学时不务正业没正经上过几次课,毕业前开始有点恍惚,逼着自己系统学习了下C#基础,虽然轻松毕业就业,就业后做过.NET的CS/BS开发,做过Java的BS开发,但都是了解了基本语法就提枪上阵了,靠运气躲过技术难题。那时没想到要整理,好多书籍课程资料也因搬家都丢弃了。有些时候忘记的知识点还要去网上查找,一下找着正确的还好,找不到又还看到博客论坛还在转发一个错误的示范(我知道有可能只是环境不同没能像文中描述那么顺畅),心里就开始mmp了。

所以写技术文章,一定要经过验证,交代自己的验证环境

这次准备把自己整理时候的知识点记录下,按俗套姑且取名.NET进阶篇,以便自己以后查阅,好多东西你一定做过,但你就是暂时想不起来了。烂笔头记一下,想不起来也好找。自己动手记录,会不自觉看很多遍,修改很多遍,思路也会更加清晰。作为职业Coder,说实话写文章方面文笔就糙了点,大多时候写字随心所欲,与其咬文嚼字,不如多关注些自己知识的盲区。但会尽量要求代码比文字严格精炼,一行代码胜千言就更好。

知识只有经过整理才能形成技能,我会在整理了一些知识点的时候发出来,连着白瞟好几集的感觉应该很爽。整个进阶篇的章节分布如下(后面估计会调整,大章节分布不会变,可能纳入些新的东西)。

我用了一个新的轻薄本(本来买来专作开源GIS的,都快落灰了,如果能坚持把这一系列写完,它也算立大功了),宇宙最强IDE-VisualStudio2019(在线安装比较慢,离线包有20G左右,后面会上传),在周末假期做拆解,合并,验证,整理工作(原谅咱工作日很难跳出工作状态,下班有空也多是关注工作中遇到的问题)。一个知识点的相关书籍课程拆出来,为了保证质量,可能需要挺长时间。希望做到一个知识点看这一篇就够了的地步。直接复制安装可用的框架代码咱还没能力整理出,此篇更多的是指导思想、原理解析,以点带面,当然会用些经典小例子,所以别太指望能直接复制粘贴到自己系统中F5就能运行成功。定位是高度总结概括,面向抽象,比如像正则可能就不会介绍,咱也记不住。到了应用的细节地方可能还需要去查阅详尽的资料,但知道怎么用,怎么查,出问题也不慌张,面对新奇热门的框架也不怵,这是咱期望的。

语言章会让你认识C#一些高级的语言特性原理,作为后面的铺垫,设计框架离不开这些东西。设计章总结常用的设计套路,不敢说融会贯通下笔如有神,起码会让你编码过程中能嗅出设计的坏味道,然后着手重构,重构的过程,会慢慢发现自己的设计竟然和成熟框架设计思想越来越像、如出一辙。框架章会了解常用框架的原理应用,工作中可以快速选型和应用,也对目前开源.NET环境深入认识。

当然,做的越多错的越多,没有信心说没有错误,更欢迎读者能指出来。共同进步,少走弯路,促进行业发展,社会进步。没错,我的梦想是推进世界进步。我们能遇到的每个问题都在某个地方被某人解决过,交流是一种快速且有效的处理问题方式。读书旅行交友都是在交换着我们对世界的认知,了解的越多,被你掌控的事物就越多。我们随时都有Plan B,还怕啥。

其实语言层面很多.NET开发者不愿承认,Java热度确实总比C#高,以前也觉得.NET挺low的,给人总是后知后觉的感觉,毕竟商业运作嘛,要经过很多过程抉择的。一方面可能与我从事的行业相对互联网比较闭塞有关,实际用到的.NET技能也不是很多,也没有大而全的认识。另一方面也与我慵懒佛系的性格有关吧,不争第一,凡事只做第二就好。千年老二其实挺好的,恰到好处,有余力有余地。

所以也没想过切换自己的主语言,如果需要Java开发者,一个优秀的.NET开发者肯定也能冒名顶上。语言真的是一通百通,设计思想更是放之四海而皆准,只是自己主语言开发起来会更顺手罢了,就像经常开自己家的车会比较顺手一样。

    一般开发者都会不止一种语言。没有最好的语言,适合自己的就是最好的你第一次学习接触的语言理应当做你的母语,如果你问我什么是世界上最好的语言?那我不知道,我只知道C#也会是之一。

-------心灵感悟--------

如何去学习一个新东西?
1:先大概了解一下这个是做啥的,初步分析一下有没有必要看,比如很多东西你短期也用不到;
2:看所有提供的api,到底能完成哪些事,深入分析一下是否有必要看,比如我用这个新的东西会带来哪些优劣,新东西一定是能带来一些好处的;
3:熟悉源码,有些bug是因为你不会用而导致的如IQKeyboardManager,有些是无法满足业务需求但是能够扩展源码达到的如支持protobuf的AFNetWorking。

怎么知道自己是否掌握了某个知识点?
我所用的两个方法。
1:当成一个面试题,看你自己怎么组织语言,也就是QQ群和论坛等社区解答别人问题的时候,你会发现明明自己一直都在用就是总结不出来是个啥~
2:写成文章,这个还真不是那么好写的,写出来后要放出去给别人看,通过网络你也能即使的得到反馈。我记得我之前写了很多文章,但是后面我都删了很多,因为很多的理解都是错误的,惭愧~
总结:
要时刻准备好,因为你不知道什么时候就会得到一个机会。而机会总是留给有准备的人。

.NET进阶篇-丑话先说,Flag先立--致青春的更多相关文章

  1. .NET进阶篇-丑话先说,Flag先立

    作为开发者,工作了几年,也总觉得技术栈和刚毕业区别不大,用的技术还都是N年前的,每每看到新东西,也只心里哇塞惊叹一下,然后就回归于忙碌.怪自己的技术池太浅,热门的令人称奇的技术也都是在其他巨人的肩膀上 ...

  2. 使用POI导出excel进阶篇

    进阶篇就是涉及到合并单元格了.就是某一列相同的单元格需要合并为一个,并分为多个sheet. 效果如图: 直接上代码,需要提供的数据自己搞,传到工具类里面就好. JcExcelVoSuper.java ...

  3. Membership三步曲之进阶篇 - 深入剖析Provider Model

    Membership 三步曲之进阶篇 - 深入剖析Provider Model 本文的目标是让每一个人都知道Provider Model 是什么,并且能灵活的在自己的项目中使用它. Membershi ...

  4. idea 插件的使用 进阶篇

    CSDN 2016博客之星评选结果公布    [系列直播]零基础学习微信小程序!      "我的2016"主题征文活动   博客的神秘功能 idea 插件的使用 进阶篇(个人收集 ...

  5. 2. web前端开发分享-css,js进阶篇

    一,css进阶篇: 等css哪些事儿看了两三遍之后,需要对看过的知识综合应用,这时候需要大量的实践经验, 简单的想法:把qq首页全屏另存为jpg然后通过ps工具切图结合css转换成html,有无从下手 ...

  6. windows系统快捷操作の进阶篇

    上次介绍了windows系统上一些自带的常用快捷键,有些确实很方便,也满足了我们的一部分需求.但是我们追求效率的步伐怎会止步于此?这一次我将会进一步介绍windows上提升效率的方法. 一:运行 打开 ...

  7. python 面向对象(进阶篇)

    上一篇<Python 面向对象(初级篇)>文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使 ...

  8. 最快让你上手ReactiveCocoa之进阶篇

    前言 由于时间的问题,暂且只更新这么多了,后续还会持续更新本文<最快让你上手ReactiveCocoa之进阶篇>,目前只是简短的介绍了些RAC核心的一些方法,后续还需要加上MVVM+Rea ...

  9. SQL Server调优系列进阶篇(查询优化器的运行方式)

    前言 前面我们的几篇文章介绍了一系列关于运算符的基础介绍,以及各个运算符的优化方式和技巧.其中涵盖:查看执行计划的方式.几种数据集常用的连接方式.联合运算符方式.并行运算符等一系列的我们常见的运算符. ...

随机推荐

  1. SQlServer 数据库表名称,字段比较

    项目中一般分测试环境(QAS),生产环境(PRD),当我们的项目经历了一次周期跨度较长的更新后,当我们发布到生产环境时,首要的任务是将新增的表,字段更新到生产数据库.很多时候,当我们发布更新的时候,已 ...

  2. 【百度之星】【思维】hdu 6724Totori's Switching Game

    思维题,最后只要判断每个点的度数>=k即可. #pragma comment(linker, "/STACK:1024000000,1024000000") #pragma ...

  3. 杭电第四场 hdu6336 Problem E. Matrix from Arrays 打表找规律 矩阵前缀和(模板)

    Problem E. Matrix from Arrays Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 262144/262144 ...

  4. yzoj P2344 斯卡布罗集市 题解

    共t条街对于每一条街上有n个店铺(n可能不相同),每次只能选两端第一个营业的店铺采购,采购第i个店铺会获得幸福度ai,采购完后,这个店铺和它相邻的店铺便会关门,问最大幸福度? 考场想了一下dp,一开始 ...

  5. Oracle 优化器_表连接

    概述 在写SQL的时候,有时候涉及到的不仅只有一个表,这个时候,就需要表连接了.Oracle优化器处理SQL语句时,根据SQL语句,确定表的连接顺序(谁是驱动表,谁是被驱动表及 哪个表先和哪个表做链接 ...

  6. 记一次tomcat内存大涨到溢出的经历

    前一段时间提交了一个产品版本给测试人员测试,测试结果简直出人意料! 测试一段时间后页面就卡死了,当时根据这个现象下意识的怀疑是卡到数据库这一层,然后查看数据库连接相关的参数,如意料之中的相似,连接数太 ...

  7. 【LeetCode】17-电话号码的字母组合

    题目描述 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合. 给出数字到字母的映射如下(与电话按键相同).注意 1 不对应任何字母. 示例: 输入:"23" 输出: ...

  8. windows2008r2安装笔记

    安装win7主题 控制面板 - 程序 - 打开或关闭windows功能 - 功能 - 添加功能: 在选择功能里勾选 桌面体验(会添加必要功能),安装就行了. 1.安装好后,个性化时,发现win7主题为 ...

  9. NOIP2002 1.级数求和

    这题目...... 题目:已知:Sn= 1+1/2+1/3+…+1/n.显然对于任意一个整数K,当n足够大的时候,Sn大于K.现给出一个整数K(1<=k<=15),要求计算出一个最小的n: ...

  10. 数据可视化之3D中国

    本文链接:https://blog.csdn.net/zhai_865327/article/details/82983489 其实一般情况下2D平面地图就够用了,但是为了更加美观及突出效果,就需要3 ...