V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wafm
V2EX  ›  .NET

想自学 C#,方向:PC 端应用.请老司机指点!

  •  
  •   wafm · 2017-01-22 21:22:43 +08:00 · 4811 次点击
    这是一个创建于 2863 天前的主题,其中的信息可能已经有所发展或是发生改变。

    虽然现在移动互联网火热的不行啊,但是个人想学习 PC 端应用编程

    所以想入坑 C#,不知道有什么比较合适的入门基础资料和书籍推荐吗?

    祝各位 V 友鸡年大吉!

    第 1 条附言  ·  2017-01-22 22:51:16 +08:00
    额,我看也有几个 V 友收藏了这个主题,语言无贵贱之分,只看怎么用罢了.希望有 V 友可以推荐下相关资料和学习路线!
    45 条回复    2017-02-11 12:31:05 +08:00
    lalalanet
        1
    lalalanet  
       2017-01-22 22:20:50 +08:00 via iPhone
    别浪费时间了
    lalalanet
        2
    lalalanet  
       2017-01-22 22:21:41 +08:00 via iPhone
    还用 c#写 winform 的可以申请一个 非物质文明遗产传承人了
    Famio
        3
    Famio  
       2017-01-22 22:21:44 +08:00
    哈哈,见到个学 C#的。看看传智播客的 C#教程把,很好上手。
    plqws
        4
    plqws  
       2017-01-22 22:23:38 +08:00
    @lalalanet 不然用啥,用 delphi ? swing ? mfc?
    shijingshijing
        5
    shijingshijing  
       2017-01-22 22:28:10 +08:00   ❤️ 2
    @lalalanet GE, Siemens, Philips, Honeywell 都可以申请了,企业级的非 Web 应用,特别是工具类软件,很多都是 C#写的。

    转一个 zhihu 上的:

    zhihu 上面码农居多,然后默认代入稍微使用一下编程语言让计算机进行自动化处理的事情都是码农在做,事实上职业码农只占利用计算机去自动化处理事情的人的很小一部分,偏偏这部分是重度用户,所以就不断有 JSP 胜过 ASP , Linux 胜过 Windows 的言论。我了解的很多行业用户,比如 GE ,西门子,阿尔斯通, Honeywell 这种大公司,他们有时候在处理一些问题的时候,不需要代码效率有多高,不需要写出来的东西并发性能有多好,反而需要简单快速利用计算机来实现某些自动化的处理,这时候微软的套件刚好就提供了这样一个选项,本身效率可能不是很高,但是封装了很多简单易用且性能还不错的组件,这些公司所要做的就是稍微看一下 api 或者用户手册, design reference 或者 demo 什么的,然后快速来解决这个问题。这样做是非常有必要的,这些公司的业务跟 IT 类公司的业务不同,他们跟 IT 公司不一样,业务不是以编程为核心的,偏偏又要用到这样一项技能,所以他们会尽量从更高一个层次去看待这个事情,微软的方案,给了我一个很明确的答案,我知道按照你的 demo 去跑,肯定能在指定时间内,指定的预算内实现我的方案,不会有太多的 surprise ,那么肯定选择微软,因为这些因素都在可控范围内,这一点对这些公司非常重要。等真正发现业务在某些方面当前方案无法满足需求的时候,我再投入更多人力,更多预算来加强这一部分(比如迁移到 Oracle 数据库)

    而微软的东西用的越多,相互之间的配合也就越强,对于大公司来说,使用成本就会摊的越薄,还有就是微软的东西对使用者来说难度不高,如果完成同一件事,一个普通的工程师用微软的东西能够实现此功能,对比一个技术牛人用开源的东西也实现了同样的功能,而且效率更高,性能更好。我想公司还是会用普通工程师加微软的方案,因为这样对人力依赖很低,我找一个技术牛人很难而且要花大价钱,但是普通工程师很好找,而且我有主动议价权。
    RE
        6
    RE  
       2017-01-22 22:29:18 +08:00   ❤️ 2
    @shijingshijing 不用跟没见识的人说太多,有那理解能力也不会说出这样的话
    yanwushu7
        7
    yanwushu7  
       2017-01-22 22:32:51 +08:00
    @lalalanet 同问 不然用啥??? @plqws
    Laynooor
        8
    Laynooor  
       2017-01-22 22:36:15 +08:00 via Android
    最近在看 C#...... 觉得和 Java 很像,虽然 Java 我也只是学个皮毛。
    准备写个小程序,边写边学,这样或许会好些。
    xiandao7997
        9
    xiandao7997  
       2017-01-22 22:36:42 +08:00 via Android
    桌面用 WPF
    billwang
        10
    billwang  
       2017-01-22 22:46:18 +08:00
    @lalalanet 挺纳闷的,为何 C#就浪费时间了?那现在用什么做 C/S 架构的程序? MVC 这种软件运行效率高但是开发效率相对 C#而言还是有差距的。
    lalalanet
        11
    lalalanet  
       2017-01-22 22:49:51 +08:00
    @plqws @yanwushu7

    拉勾上随便搜一下,看看现在还有大量需求的 windows 客户端程序员都用什么 https://www.lagou.com/jobs/list_windows 客户端

    LZ 连自学 C#怎么学都得上来问的人,看了那堆拖控件 winform 入门教程能做出什么来。练练 javascript 弄个 electron 性价比都更高。
    lalalanet
        12
    lalalanet  
       2017-01-22 22:50:24 +08:00
    @billwang 浪费时间说的是 LZ
    wafm
        13
    wafm  
    OP
       2017-01-22 22:52:46 +08:00
    @lalalanet 只是自己给小工作室做个自用的系统 顺便练手 哈
    lalalanet
        14
    lalalanet  
       2017-01-22 22:57:55 +08:00
    @shijingshijing

    同理企业 ERP 有一大堆写 J2EE 的, SAP 还有一堆写 ABAP 的,这些岗位未来有多少新增的岗位需求,开发企业软件里是业务知识重要还是 C#水平更重要呢。

    宇宙最大的银行柜员系统还有 swing 做的,盯着这个岗位的学 swing 然后去银行找工作吧
    echo1937
        15
    echo1937  
       2017-01-22 22:59:01 +08:00   ❤️ 1
    如今 Windows 软件开发究竟该用什么库, C#、 Qt ,还是其他?
    https://www.zhihu.com/question/24461881/answer/140104855

    不希望楼主点错技能树
    limhiaoing
        16
    limhiaoing  
       2017-01-22 23:06:58 +08:00 via iPhone
    Windows 桌面应用开发效率最高的是 C#,没有之一。
    sammo
        17
    sammo  
       2017-01-22 23:13:23 +08:00 via iPhone
    c#学习指南 热带鱼书,了解 c#语言语法 类和实例什么的
    shijingshijing
        18
    shijingshijing  
       2017-01-22 23:16:36 +08:00   ❤️ 1
    @lalalanet 你怎么不用 SUN 的 Solaris 维护和小型机的 COBOL 来举例子呢。我说的就是现在这些大公司正在使用的工具软件,是用 C#写的;有很多即将使用的工具和系统,也是用 C#开发的,你没见过不代表不存在,大公司之所以这么选择,是有他自己的道理的,不要以为这些公司不够先进, GE 照样使用云服务,用的就是微软的 Azure ,人家的大数据平台 Predix 如火如荼,你自己眼界到达不到的地方不代表就不存在。多读点书吧。
    itabas016
        19
    itabas016  
       2017-01-22 23:17:48 +08:00 via Android
    C#是世界上最好的语言

    瓜子,汽水😉😉😉
    Quaintjade
        20
    Quaintjade  
       2017-01-22 23:22:18 +08:00 via Android
    如果有面向对象语言基础的话, C#很容易上手。如果有 java 基础的话,直接就能上手。

    非软件相关行业或者个人兴趣, C#的开发效率妥妥的,你要的绝大部分轮子全都打包扔给你了。
    lalalanet
        21
    lalalanet  
       2017-01-22 23:27:42 +08:00
    @shijingshijing Solaris 马上裁员了,你知道哪有招的可以给 Oracle 那帮人介绍给出路

    你看见我哪说没有 C#写的东西,我哪说这些公司不先进了,我哪反对选择 C#了? 我一直说的就业和 LZ 学习的问题,你脑补的可真多。

    另外,你可以列列你读过的书,我看看哪本我没看过好去买一本,谢谢。
    fjzjk
        22
    fjzjk  
       2017-01-22 23:28:04 +08:00
    winform 主要是一些对象古董电脑的企业用(我之前的公司),当然还是要配合 devexpress 的。
    学 c#没问题, c#写着很舒服。学会了自然一通百通,去用 wpf 和其他库也是一样上手。
    starvedcat
        23
    starvedcat  
       2017-01-22 23:33:07 +08:00
    《 WPF 编程宝典:使用 C# 2012 和.NET 4.5 》
    starvedcat
        24
    starvedcat  
       2017-01-22 23:33:25 +08:00
    这一本就够
    mazyi
        25
    mazyi  
       2017-01-22 23:36:54 +08:00
    学习编程应该都是一样的吧,看书写代码反思循环即可。

    不过既然你是先来问而不是先去学,说明你还是需要多学习啊。
    n37r06u3
        26
    n37r06u3  
       2017-01-22 23:44:21 +08:00
    js 打通奇经八脉、。。。。。
    shijingshijing
        27
    shijingshijing  
       2017-01-22 23:51:39 +08:00
    @lalalanet 你不就是说用 C#写 Winform 不够先进么?什么非物质文明遗产传承人 我反驳也是举例没有像你说的那样不堪啊,各自有各自的用途,你非得扯上先进不先进。
    q397064399
        28
    q397064399  
       2017-01-23 06:56:35 +08:00
    @shijingshijing

    lala 说的是做业务开发的需求减少,这个是必然的,因为这些个开发行业 本来就饱和的差不多了
    企业是以业务主导的,并不是由你的编程兴趣主导的,选择技术一般比较保守,架构方案也比较老旧,
    很多企业开发 直接要求不要前端框架,因为没有那么多复杂的交互需求
    (何况都是给企业内部用的,员工觉得不顺手,你还能告上天?),
    只要简单,后端开发也能直接参与进来撸,减少用工成本

    ------------
    从长远来讲,客户端 基本上死得差不多透彻了,
    企业应用是最早推 B/S ,因为绝大部分企业应用并不涉及到操作系统子系统
    像 JavaEE 甚至比互联网行业应用推广的还早,因为企业购买的是 IT 服务,而不是 IT 技术(一定搞清楚这个区别)
    大型公司 往往一个系统的客户端应用要部署 在上万台 不同的机器上,像政府的行业应用要部署到不同的单位
    不同机器上, C/S 客户端兼容性 真的是渣渣 早期 DLL 地狱,现在很多企业应用 因为需要还在用 MFC ,你看看写 MFC 的工程师 有多惨?

    互联网 因为用户比较多,分发收益 - 兼容性付出的成本 收益还是比较高
    像迅雷 就一直搞了自己的一套 UI 库在用,用 net ? 考虑下 xp 用户的感受? 最早一些迅雷版本 还兼容过 2003 98 等系统
    likai
        29
    likai  
       2017-01-23 07:43:36 +08:00 via Android
    这楼歪得可以。
    人家想学 c#,求个教程,你们偏偏扯上找工作。
    学这个就一定是为了找工作?
    我也在学 c#,不是为了找工作,单纯为了搞一些自用软件。
    我挑的两本书,《 c#入门经典》《精通 c#》
    tilv37
        30
    tilv37  
       2017-01-23 08:42:52 +08:00
    想要界面美观,可定制化强,就去看看 WPF
    rocksolid
        31
    rocksolid  
       2017-01-23 10:05:37 +08:00
    还没入门的话, head first c#吧,深入就 CLR via C#
    aldenchang
        32
    aldenchang  
       2017-01-23 10:42:09 +08:00 via iPhone
    老实说 如果仅仅是用 c#做桌面应用,根本不需要教程…玩玩 IDE 就知道怎么做了
    weizhiyao008
        33
    weizhiyao008  
       2017-01-23 12:17:09 +08:00
    语言类的书推荐:《深入理解 C#(第三版)》(《 CLR via C#》现在没必要看,太深入了,基础语法基本不讲的)
    但是上面推荐的书没有讲 Winform 和 WPF 技术,桌面开发的话,还得配合别的书或者是类似传智的视频
    justtery
        34
    justtery  
       2017-01-23 13:43:20 +08:00
    在下拙见,,,微软的东西,还是不要碰的好
    Famio
        35
    Famio  
       2017-01-23 13:57:29 +08:00
    @likai +1 ,总是有很多人答非所问。
    zhangdawei
        36
    zhangdawei  
       2017-01-23 19:49:28 +08:00
    c# + winform ,或者 wpf ,都还不错。
    Windows 平台的,这个算是效率最高了。
    kiwigong
        37
    kiwigong  
       2017-01-24 15:44:45 +08:00
    微软的东西越玩越穷 一点感受
    HLT
        38
    HLT  
       2017-01-24 17:06:04 +08:00
    LZ 明显是掉队了
    snipes
        39
    snipes  
       2017-01-24 21:28:50 +08:00
    学 WPF 或者 uwp 吧, winform 过时了。
    breeswish
        40
    breeswish  
       2017-01-25 11:54:51 +08:00
    拉 C# 新人入坑 Web 的就算了吧,人家 C# 造点小工具拖拖控件就出来了代码开发都是在智能提示环境下,要运行点个三角形就好了。搞 Electron 之类的先研究一番这个目录结构好还是那个目录结构好,再研究一番 npm 下载怎么那么慢,再研究一番 react 还是 vue 还是 angular ,接下来研究一番 flux 是个啥 redux 又是个啥怎么大家都在用 vuex 是个啥 angular 怎么还有个 2 ,然后发现还需要一个 babel 。全部折腾完一圈发现还没有 UI 控件需要找一个。找来以后发现怎么这个版本太老了不支持那个版本太新了还不兼容,怎么这里一个 bug 那里一个 bug ,怎么又编译不了了……再折腾一圈终于可以用代码把控件写出来了。划重点: Web 这套适合造好看的玩具。
    breeswish
        41
    breeswish  
       2017-01-25 11:59:56 +08:00
    更糟糕的是,接下来发现用看上去好看的各种界面库比如 material 风格的怎么没有设计头脑的自己做出来的东西仍然是那么丑;隔壁 WPF 用户笑了笑拖了个 Infragistics 进来
    doumeki
        42
    doumeki  
       2017-01-25 14:11:56 +08:00
    @breeswish 我看笑了, 哈哈.虽然我都没听过你说的那些东西.
    1L 也是够了,别人没说要找工作,跟上时代的潮流,就 TM 想做个 win 的程序不用 C#用啥开发比这更快?
    现在编程技能早就不是程序员的专利了,啥子牛鬼蛇神都能写个 1,2,3 出来, 为什么总有人以程序员的工作环境来思考问题呢.
    adv007
        43
    adv007  
       2017-01-25 14:43:43 +08:00 via iPhone
    楼主是要做 c/s 开发,大家却在讨论 c#,都没有问题,其实除了这些视野可以更广一点,如 eletron , nw.js
    luyikk
        44
    luyikk  
       2017-01-25 16:28:45 +08:00 via iPhone
    看不下去了 怎么有那么多 S B 天天黑 C#
    我来回答你的问题吧
    C# win from+dotnetbar 就好了 学个 C# 基础就行

    @lalalanet
    winfrom 怎么的也比你 QT MFC 先进吧?
    举个例子 比如用 winfrom+dotnetbar 画个很漂亮的 GUI 只要 5 分钟
    WPF 需要 50 分钟
    QT 需要的 2 小时
    你信不? 懂吧 ? 不服?来和 C# 比开发效率 来试试?
    随便你什么平台用什么语言!
    别个我说 python 什么的 真正开发起来 开发效率 性能 调试 给 C# 提鞋都不配
    JAVA 就更别来比了
    不知道那里来的优越感 一天到晚 误人子弟
    ragnaroks
        45
    ragnaroks  
       2017-02-11 12:31:05 +08:00
    C#在客户端方面(特指我佩服 /银光)有着开发效率上巨大的优势,更重要的是设计人员与开发人员逻辑分离,你直接写你的,不用等 UI 改好你再来改,可以即时自动更新预览.
    但是问题也很突出,相对 C/C++(atl/mfc/qt 之类)占用的内存较多,冷启动较慢.

    在 Web 方面,可能要比 php 方便一些吧,毕竟 dll 写了直接用,php 还要注册一下,还得是 com,关于 asp.net 和 php 的性能在此不做讨论.

    回到正题,微软的东西,没有"书"这一说,只有 MSDN
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5406 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 05:47 · PVG 13:47 · LAX 21:47 · JFK 00:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.