一、概要

本篇文章针对的是,长年写客户端(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技术栈转型心路历程分享的更多相关文章

  1. 基于.Net进行前端开发的技术栈发展路线(二)

    前言 上一篇<我的技能树>文章分享了我的技能成长过程,还未完成,今天继续跟大家分享. 01 我的技能树 我的当前的技能树: 其中,标注为黄色旗帜的是基本掌握,标注为红色旗帜的为使用熟练.未 ...

  2. 顶级项目孵化的故事系列——Kylin的心路历程【转】

    现在已经名满天下的 Apache Kylin,是 Hadoop 大数据生态系统不可或缺的一部分,要知道在 Kylin 项目早期,可是以华人为主的开源团队,一路披荆斩棘经过几年的奋斗,才在 Apache ...

  3. 如何使用Microsoft技术栈

    Microsoft技术栈最近有大量的变迁,这使得开发人员和领导者都想知道他们到底应该关注哪些技术.Microsoft自己并不想从官方层面上反对Silverlight这样的技术,相对而言他们更喜欢让这种 ...

  4. 一个人的 ClojureScript 技术栈

    作者:题叶链接:https://zhuanlan.zhihu.com/p/24425284来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.今天(昨天)分享完关于 Cloj ...

  5. 细数Javascript技术栈中的四种依赖注入

    作为面向对象编程中实现控制反转(Inversion of Control,下文称IoC)最常见的技术手段之一,依赖注入(Dependency Injection,下文称DI)可谓在OOP编程中大行其道 ...

  6. java技术栈:项目概述

    学习使用java到现在也有三年多了,这三年基本是以项目驱动的方式学习,有好有坏,个人觉得好处在于,有一个清晰的目标让你解决,这会让你学习非常迅速有效.当然坏处就是片面,不成体系.这种学习方式在学校以小 ...

  7. 快速了解Scala技术栈

    http://www.infoq.com/cn/articles/scala-technology/ 我无可救药地成为了Scala的超级粉丝.在我使用Scala开发项目以及编写框架后,它就仿佛凝聚成为 ...

  8. G彩娱乐网一个程序员到一个销售高手的心路历程

    0.引言 我大学本科读的是理工科,后来毕业以后,我逐渐走上了程 序员的道路.每天面对电脑一行一行的敲代码,这被我们程序员们戏称为"搬砖头",因为我们所做的事跟民工搬砖头砌墙本质上是 ...

  9. SpringBoot技术栈搭建个人博客【前台开发/项目总结】

    前言:写前台真的是我不擅长的东西...所以学习和写了很久很久...前台页面大概开发了两天半就开发好了,采用的静态的html和bootstrap来写,写后台的时候纠结住了...怎么说呢,写页面真的是头疼 ...

随机推荐

  1. 7.12 NOI模拟赛 生成树 装压dp vector装压

    LINK:生成树 这场比赛我打的真失败 T3是比较容易的 却一直刚 那道"数论" 10分其实搜一下全排列. 30分容易想到对边进行装压dp. 不过存在一些细节 可以对于一个连通块的 ...

  2. luogu P5892 [IOI2014]holiday 假期 决策单调性优化dp 主席树

    LINK:holiday 考虑第一个subtask. 容易想到n^2暴力枚举之后再暴力计算答案. 第二个subtask 暴力枚举终点可以利用主席树快速统计答案. 第三个subtask 暴力枚举两端利用 ...

  3. bzoj 4305 数列的GCD

    LINK:数列的GCD 题意: 给出一个长度为N的数列{a[n]},1<=a[i]<=M(1<=i<=N). 现在问题是,对于1到M的每个整数d,有多少个不同的数列b[1], ...

  4. 剑指 Offer 52. 两个链表的第一个公共节点

    题目链接 题目描述: 我的题解: 方法一:双指针法 思路分析: 声明两个指针p1,p2 分别指向链表A.链表B. 然后分别同时逐结点遍历 当 p1 到达链表 headA 的末尾时,重新定位到链表 he ...

  5. 探讨Netty获取并检查Websocket握手请求的两种方式

    在使用Netty开发Websocket服务时,通常需要解析来自客户端请求的URL.Headers等等相关内容,并做相关检查或处理.本文将讨论两种实现方法. 方法一:基于HandshakeComplet ...

  6. Kaggle-pandas(4)

    Grouping-and-sorting 教程 映射使我们可以一次将整个列中的数据转换为DataFrame或Series中的一个值. 但是,通常我们希望对数据进行分组,然后对数据所在的组进行特定的操作 ...

  7. C语言学习笔记之输出缓冲

    在c语言中经常用到输出函数printf,当我们像往常一样在输出函数中输入我们的想要的输出的东西后加\n换行 验证结果如我们输出的一样 如果我们在后面加入死循环会不会出现这些语句呢 结果卡死了,可还是输 ...

  8. JavaScript按位运算符~

    1. JavaScript按位运算符 Bit operators work on 32 bits numbers. 2. JavaScript按位运算符~ 值得注意的是,在JavaScript中,~5 ...

  9. 【JVM】JVM优化过程全记录

    请大神移步:https://segmentfault.com/a/1190000010510968?utm_source=tuicool&utm_medium=referral 今天看JVM群 ...

  10. Django-model查询[为空、由某字符串开头、由某字符串结尾、包含某字符串],__isnull、__starswith、__endswith、__contains

    使用属性+__isnull就可以判断此字段为空 a = DatasClass.objects.filter(name__isnull=True) 使用属性+__startswith可以判断属性由某字符 ...