.net技术栈转型心路历程分享
一、概要
本篇文章针对的是,长年写客户端(WPF/winfrom/delphi)的小伙伴想转后台写数据服务(asp.net mvc webapi , socket)或者想转其它技术,却又不知道改如何下手处于比较迷茫状态下的小伙一些引导。
大致分为以下几个部分:
1.转型需要准备什么
2.如何学习新的技术
3.如何学以致用,从而使得你自学的这一套能用来吃饭
接下来会一 一解析这些问题。
技术交流QQ群:580749909 欢迎交流有问必答,文章尾有个人的微信公众号有兴趣的小伙伴多多关注。
二、内容
转型需要准备什么:
(1)转型首先要了自己的兴趣点在于哪里,比如说我自己确定自己对webapi 后台数据服务这块感兴趣且这项技术在市场上是有需求的(不然自学了不能恰饭多难过)。
(2)有了方向之后,例如选择了写后台数据服务那么就去了解一下这个方向技术站需要掌握哪些技术或者工具。比如写后台需要掌握缓存(redis)、数据库(mysql,orecal)、队列(kafka)、算法、ids4、数据结构等。
那么如何去了解呢,最简单直接的就是去招聘网站上看最贴合实际了可谓是“对症下药”。一般招聘网站上都会写你要掌握哪些才能胜任这个岗位。

大致企业级的开发需要的技能基本不会少于图上的这几个要求,大概轮廓有了那么就可以根据这些技术站查找相关连技术“细枝末节”的都挖出来。
(3)做服务端开发,需要有开发服务端的“思维”。因为开发服务端的所设计的难度是比客户端开发门槛要高的,两者是不同的东西写的代码虽然都差不多但是怎么写的恰好是不容易的。我举个例子为什么要强调开发思维。写客户端你不需要在意高并发,数据处理速度的毫秒之差、缓存、数据、高可用、异步、高响应等等。用wpf为例子一个普通的工程师基本的工作日常就是,写界面然后把数据填上了不起开个后台线程读数据然后赋值。我面试过很多做wpf的开发几乎就是把这个过程重复了很多遍(当然还有其它技术含量的操作这里就不例举了)。而服务端的开发需要在意的地方则复杂的多。
如何学习新的技术:
我这里推荐一本书一个微软的 MVP写的叫李智慧《大型网站技术架构—核心原理与案例分析》撰写的。非常不错,能讲清楚做服务端宏观脉络能学习到开发“思维”。技术细节学习和实现可以学习微软的MVP杨旭他在b站上有教学视频。以上两位大佬均在博客园有账号大家看我关注对象就能找到或者自己动手站内搜一搜。
如何学以致用,从而使得你自学的这一套能用来吃饭:
一般企业关心的问题有两点,1.你有没有实战经验,2.掌握的深度够不够。那么如何才能有实战经验呢,先自学写demo完成某个完整的练手项目然后向你现在的公司申请你能做类似的工作。啥都不会跑去找老板说自己要开发某某技术老板是不会为你的学习成本买单的,学好了再去找老板。如果打死不同意你内部转岗开发这些怎么办?不怕死的话可以接小项目私活,要么换家公司找找机会。总之你真的想做成某一件事情的时候全世界都会为你让路,如果不让肯定是你不够想。
第二点就是掌握的深度,这个没有什么技巧多看博客和微软官方的技术文档(这个是最新也是最硬核直接的学习方式)还有多写代码,加技术QQ交流比如:580749909这个群大家一起交流这样思维会更开阔一些。代码写的烂不要紧,不断的修改不断的学习新的迟早会达到目标的。
我这里有很多学习途径,如果有需要可以加群我非常愿意分享,比如一些大佬的微信号、公众号、还有技术峰会的ppt都可以免费分享给大家。

.net技术栈转型心路历程分享的更多相关文章
- 基于.Net进行前端开发的技术栈发展路线(二)
前言 上一篇<我的技能树>文章分享了我的技能成长过程,还未完成,今天继续跟大家分享. 01 我的技能树 我的当前的技能树: 其中,标注为黄色旗帜的是基本掌握,标注为红色旗帜的为使用熟练.未 ...
- 顶级项目孵化的故事系列——Kylin的心路历程【转】
现在已经名满天下的 Apache Kylin,是 Hadoop 大数据生态系统不可或缺的一部分,要知道在 Kylin 项目早期,可是以华人为主的开源团队,一路披荆斩棘经过几年的奋斗,才在 Apache ...
- 如何使用Microsoft技术栈
Microsoft技术栈最近有大量的变迁,这使得开发人员和领导者都想知道他们到底应该关注哪些技术.Microsoft自己并不想从官方层面上反对Silverlight这样的技术,相对而言他们更喜欢让这种 ...
- 一个人的 ClojureScript 技术栈
作者:题叶链接:https://zhuanlan.zhihu.com/p/24425284来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.今天(昨天)分享完关于 Cloj ...
- 细数Javascript技术栈中的四种依赖注入
作为面向对象编程中实现控制反转(Inversion of Control,下文称IoC)最常见的技术手段之一,依赖注入(Dependency Injection,下文称DI)可谓在OOP编程中大行其道 ...
- java技术栈:项目概述
学习使用java到现在也有三年多了,这三年基本是以项目驱动的方式学习,有好有坏,个人觉得好处在于,有一个清晰的目标让你解决,这会让你学习非常迅速有效.当然坏处就是片面,不成体系.这种学习方式在学校以小 ...
- 快速了解Scala技术栈
http://www.infoq.com/cn/articles/scala-technology/ 我无可救药地成为了Scala的超级粉丝.在我使用Scala开发项目以及编写框架后,它就仿佛凝聚成为 ...
- G彩娱乐网一个程序员到一个销售高手的心路历程
0.引言 我大学本科读的是理工科,后来毕业以后,我逐渐走上了程 序员的道路.每天面对电脑一行一行的敲代码,这被我们程序员们戏称为"搬砖头",因为我们所做的事跟民工搬砖头砌墙本质上是 ...
- SpringBoot技术栈搭建个人博客【前台开发/项目总结】
前言:写前台真的是我不擅长的东西...所以学习和写了很久很久...前台页面大概开发了两天半就开发好了,采用的静态的html和bootstrap来写,写后台的时候纠结住了...怎么说呢,写页面真的是头疼 ...
随机推荐
- PHP is_int() 、is_integer()、is_long() 函数
is_int() 函数用于检测变量是否是整数.高佣联盟 www.cgewang.com 注意: 若想测试一个变量是否是数字或数字字符串(如表单输入,它们通常为字符串),必须使用 is_numeric( ...
- mysql安装和配置详解以及Navicat连接失败问题
好久没安装过MySQL了,今天安装了下竟然碰壁了, 就来做个笔记吧.安装步骤如下: 记住:一定要看到最后!!!!!!!!! 一. 安装 1.安装 (https://dev.mysql.com/dow ...
- SpringMVC文件上传下载(单文件、多文件)
前言 大家好,我是bigsai,今天我们学习Springmvc的文件上传下载. 文件上传和下载是互联网web应用非常重要的组成部分,它是信息交互传输的重要渠道之一.你可能经常在网页上传下载文件,你可能 ...
- C/C++编程笔记:C语言贪吃蛇源代码控制台(一),会动的那种哦!
前几天有个同学加我QQ私聊我说他们老师布置了一个贪吃蛇,他不知道怎么写所以来找我求解,我给他简单讲解了思路和一些难点之后他也能够自己独立将项目完成了!考虑到更多同学可能有贪吃蛇上的问题,今天有时间就来 ...
- 6.29 省选模拟赛 坏题 AC自动机 dp 图论
考场上随手构造了一组数据把自己卡掉了 然后一直都是掉线状态了. 最后发现这个东西不是subtask -1的情况不多 所以就没管无解直接莽 写题有点晚 故没调出来.. 考虑怎么做 容易想到建立AC自动机 ...
- CF R 632 div2 1333F Kate and imperfection
赛后看了半天题 才把题目看懂 英语水平极差. 意思:定义一个集合S的权值为max{gcd(a,b)};且\(a\neq b\) 这个集合可以从1~n中选出一些数字 求出当集合大小为k时的最小价值. 无 ...
- java.lang.ClassNotFoundException: org.apache.tomcat.util.security.Escape
tomcat-embed-jasper 依赖中不要有版本号 技术交流群: 816227112
- 无所不能的Embedding 1 - Word2vec模型详解&代码实现
word2vec是google 2013年提出的,从大规模语料中训练词向量的模型,在许多场景中都有应用,信息提取相似度计算等等.也是从word2vec开始,embedding在各个领域的应用开始流行, ...
- /usr/bin/docker-current: Error response from daemon: driver failed programming external connectivity on endpoint naughty_wozniak (444e26e0a2a3adb1ff88177ead86099ad64c0406afcec179ce7cfeef8ffa2d5c): (i
/usr/bin/docker-current: Error response from daemon: driver failed programming external connectivity ...
- 018_go语言中的结构体
代码演示 package main import "fmt" type person struct { name string age int } func main() { fm ...