自主创业英语作文(从零开始系列,用C#做软件产品:私人日记(一))

为什么要做教程?

我是做全栈开发的独立开发者。2001年软件开发专业毕业,从程序员到项目负责人再到项目经理、部门经理、甲方CIO、公司副总裁,在10多年的工作生涯中经历了20多个大大小小的项目,几乎干过软件行业的各种工作。2013年,我35岁,突然厌倦了工作。职位越高,收入越高,压力越大,职位越低,自尊越低。抱着这种心态去上班,必然越来越黑。让我再次充满激情的是,一直有一个梦想没有实现:很多用户都在用我写的软件。于是我自己创业,写软件。截至目前,已推出5-6款软件产品,累计用户数超过10万。日活用户应该在1000以上,基本实现了我的梦想。虽然比不上大厂百万年薪,但是养家糊口还是没问题的。最让我满意的是工作时间的自由,而不是朝九晚五,想做什么就做什么。

可能是个人性格吧。我特别不能接受每天重复的事情。几个产品的维护往往让人觉得很枯燥。当然,也可能是年龄原因。毕竟今年42了。现在突然觉得自己已经失去了继续开发新软件产品的激情,之前也想做一款游戏,但是游戏对于美工来说可能更重要,自己没有太多新的想法,开发周期会特别长,吃力不讨好。但是人要找自己感兴趣的事情去做,不然你活着干嘛?股票交易是我的兴趣之一。以前想通过程序量化实现自动炒股。但是经过我自己的反复实验,显示在海量数据样本面前,单单技术指标的胜率基本在50%左右,类似于抛硬币。这条路不行。

别人找了很久,我觉得自媒体更适合我。我也有兴趣尝试一下。第一,我愿意写一些文字;第二,写出来的内容会被别人看,可以和别人互动;第三,如果别人认可你的内容,就会成为你的粉丝,进而获得更多的推荐。这个机制很吸引人。唯一的缺点就是除了编程,其他方面我都不擅长,编程的内容可能比较少,可能达不到预期的效果。

做软件开发教程的想法是因为前几天发了几篇关于C#的文章,结果引来了很多评论,其中有几个用户提到想学c#编程。我回忆起我学习编程的方式。一开始我根本没有百度。我自己啃MSDN,然后自己在电脑上调试了一点码字。但毕竟手册只能学到基础。真正的难点在于把项目中具体的东西抽象出来,遇到问题如何解决。这是编程的核心。我的技术可能很好,但是我有丰富的项目和产品制作经验,这是很多学校和培训机构不具备的。如果我能把这些经验融入到软件开发的教程中,会不会让教程更生动?哪怕最后只有一个人爱上了编程,学会了编程,那我想我的努力也没有白费。即使没有人,我也把自己一生的一部分工作做了总结留在了网上,为这个社会做了一点点浅薄的贡献。想到这里,我突然重燃了久违的兴趣。动手吧:)

当前主流的编程语言

在教程开始之前,先给大家看一下2021年8月TIOBE上的编程语言排名。

自主创业应该怎么创



简单介绍一下排名前五的语言:

第一个C和第四个C++通常把它们放在一类,总共占将近20%。c出生于1972年。后来由C派生出C带类,1983年正式命名为C++。目前市面上大部分操作系统的底层都是用C/C++写的,甚至大部分编程语言的编译器都是用C/C++写的。跨平台、高效率是最大的优点,缺点是需要你对底层有很深的理解,导致学习周期和开发成本很长。主要应用场景是做底层。

第二种Python占比近12%。诞生于1991年,是一种用C编写的脚本语言,它最大的优点就是可以轻松调用各种用其他语言编写的东西:比如用C/C++编写的dll,用Java和c#编写的类,甚至js脚本,都可以调用。它的定位更像一个包工头。虽然我自己做不好,但是我可以找各种各样的工人,要什么有什么。当然缺点也很明显,执行效率不高。因此,它通常用于研究、操作和维护等领域。,对接口和效率要求不高的,比如人工智能、机器学习、大数据挖掘、爬虫、黑客等。,所以不要指望它是软件产品。另外,就我个人喜好而言,我不太习惯用空单元格的个数来确定句子的层次关系。有人开玩笑说,我们要用游标卡尺来测量每一行的空细胞数,没那么夸张,但是真的很浪费眼睛。

第三个Java占近11%。95年出生,可以说是目前国内互联网厂商使用最多的语言。最大的好处就是跨平台开源的现成代码很多,参与人数多,政府指定等等。用insiders,生态好,缺点是运行效率略低,内存开销较大。目前Java广泛应用于大型网站、企业应用、手机应用等。Windows平台下个人应用体验差。

第五个是我今天要介绍的主角C#,占比超过5%。生于2002年,就语言本身而言,在我看来,现在的C#已经近乎完美。必须说缺点,这也是外界因素造成的:一是开源太晚,导致现成代码太少,相关人才少,所谓生态差;第二,跨平台还没有形成闭环。虽然。net 5的跨平台统一方案已经推出,界面MAUI要到2022年才推出。在微软顽固维护windows的前10年,Java已经占据了企业应用的大部分市场,剩下的小企业基于成本考虑选择了php。直到近几年,微软终于醒悟,亡羊补牢为时未晚。目前C#的主要应用场景是金融和医疗行业,注重安全性,不差钱,然后游戏行业主要用Unity。

为什么要选择C#作为教学语言?

1)功能丰富,语法美观。在伟大的安德斯·海尔斯伯格的带领下,这门语言被雕琢得更像一门艺术,有了宇宙中最强大的代码编辑器Visual Studio,它所向披靡。使用它的心情也是愉悦的,不像其他一些语言,看起来凌乱,影响心情。

2)代码性价比高。与其他语言相比,占用内存少,运行效率高。花更少的时间学习,更快的开发效率,就能获得接近C/C++的性能。

3)跨平台预期。近年来,微软在跨平台和开源方面已经不再矜持,之前投入巨大空。随着的推出。net 6和MAUI统一跨平台产品的相继问世,未来c#的跨平台趋势将彻底逆转。一个c#代码可以跨平台运行的时代正在到来。

4)游戏行业的肩膀。Unity已经成为游戏界当之无愧的领袖,C#与之完美融合。想往这个方向走,C#一定要学。

5)首选独立开发者。 C#可用于编程:windows工具软件、windows服务、ERP系统、工控系统、爬虫工具、GDI绘图、各种网站、微服务、游戏、苹果Android下的手机应用等等。基本上所有你能看到的程序都可以用它编程,而且效率高。如果你学习编程的目标是在企业找工作,那么在目前国内就业形势下,选择学习Java是明智的。但如果你的目标是像我一样成为一名独立开发者,做出自己的软件产品或应用,那么C#是最好的选择,因为它性能优越,无所不能。

此系列教程的特点?

我也在网上看过一些C#教程,很多都像用户手册。它们语法描述的很详细,但是你看了半天还是不知道能做什么。没有结合产品和项目的经验,做参考书不如百度准确,不实用。

所以我的想法是以做一个软件产品为目标,产品会产生功能,功能会驱动设计,设计会引导开发,然后编码,边做边学,学以致用,可以加深理解。

另外,在很多大厂里,每一个员工都是一颗单一工作的螺丝钉,码农也不例外。比如你做前端,就一直做前端,可能连做后端的机会都没有。虽然我的教程功能可能比较简单,但是麻雀虽小,五脏俱全,涵盖了产品开发的各种工作。第一,可以增加理解,让团队合作更和谐。二是可以帮助自己选择更适合的工种,提升自己空。

此系列教程的教学内容?

这个软件产品是用来写个人日记的,也可以看作是个人博客。最终的目标知识可以同时在计算机、web和移动终端上使用。这三个终端可以添加、删除、查看日记内容,实现数据同步。

软件开发周期大致分为三个阶段:

第一阶段,windows独立版

目标是实现单机版软件的基本功能,做好数据定义,类库等。,为后续的研究和开发奠定基础。

在这个阶段,你可以掌握最基本的编程概念,抽象设计,操作系统原理等。知识点包括但不限于:界面布局、控件事件、文件读写、类库设计、数据库设计、程序调试、源代码管理等编程相关基础。不管以后走哪个方向,还是要掌握抽象设计和操作系统的知识。只有了解操作系统的运行原理,才能更好地利用编程技术。

二期,B/S架构网络版

目标是在不同设备的浏览器上随时随地登录软件,并将用户数据保存在服务器中。

网络发展太快了。像我这样的老人,跟不上变化的速度。有些项目我还是用asp.net+jquey做web项目,我觉得没什么不好。当然,当它被用作教学时就过时了。微软的web架构从最开始的asp发展到ASP.NET,然后随着javascript的大发展,特别是jquery和ajax的出现之后,前端不再是简单的html+css。于是各种框架相继出现,mvc,Vue等等,还有很多我叫不出名字的。这一块可以发展的方向有很多,也很乱。现在微软在推blazor,以webassembly的方式在网页上运行。这是一项可以跨平台部署的尖端技术。我比较喜欢,所以选择它作为web项目的开发框架。

在这里你会学到web的基本概念,html,js,css,web界面,json,blazor等web相关的知识。

第三阶段,多终端跨平台

目标是实现同一个代码在不同平台(Windows、Mac、Android、IOS、Linux)上运行有原生程序。

前两个阶段实现了单机版和Web端,但各有缺陷。单机版只能在windows系统下运行,用户基数有限。Web服务器只能在浏览器上运行,用户体验有点差。现阶段需要在单机版的基础上增加对所有客户端的支持,win、mac、linux系统下的主流设备,如电脑、手机、平板等主流设备都可以运行。

初步计划是使用。net 6在毛伊岛发布后,并基于单机版进行重构。这个领域对我来说是全新的,我也需要不断的探索,和大家分享我的经验。

此系列教程的更新计划

我估计教程长度可能超过100节。我之前从来没有做过这么完整的系列教程,每一步都在不断摸索前进,所以更新进度估计会比较慢。

初步计划是每周更新1-3篇。当然要看实际情况。毕竟生活中有各种琐碎的事情。

此系列教程的代码

最后,这个项目是开源项目,代码内容会随着教程实时更新。有兴趣的可以关注我获取最及时的更新。私信:私日记可以在Github中获取这个项目的链接。

您可以还会对下面的文章感兴趣

使用微信扫描二维码后

点击右上角发送给好友