C语言和 Java的主要区别:面向过程/面向对象、编译型/混合型、不同的应用场景。只要阅读二者的入门资料就清楚了。
时间足够的话,先学C再学Java;时间不够直接上 Java。
一个合格的程序员当然是要会C语言的,不过真正必须用到C语言的领域主要是嵌入式开发和操作系统等偏底层的开发。我们所提到的开发场景(Web开发、移动开发)并不是C语言的强项。而选择 Java 的话,首先要把这门编程语言的基础打牢,了解面向对象编程的基本思想。然后选择 Java 的其中一个应用领域继续深入学习,比如 Web 后台或者安卓开发。
Web开发,即我们所说的“做网站”。网站开发分前端和后台,这两个方向精通其一即可。简单粗暴地理解,前端是呈现给用户的网页界面以及交互操作,运行在用户的浏览器上;而后台负责存取和处理数据,运行在服务器上。前端和 Java 没有多大关系,需要学习的是 HTML、CSS 和 Javascript。学完 Javascript 基础之后,再上手一种前端框架,Vue、React、Angular 都可。后台的话,编程语言可选 PHP 或者 Java。选择 Java 的话,就必须掌握一种主流的 Java Web 框架,著名的比如 Spring MVC。后台开发还要熟悉数据库。
移动开发,即我们说的“做手机APP”。安卓用 Java 或 Kotlin,iOS 用 Swift 或 Objective-C。选择安卓开发或 iOS 开发的学习资料来看,边看边练就好了。
至于C#,它是 Java 的竞争对手,是微软的 .NET 技术栈中最重要的编程语言,可以用来开发 Windows 平台的应用软件Winform/WPF/UWP、网站后台、3D游戏开发(Unity)。鉴于微软的技术栈在国内互联网行业并不是主流,所以 C# 的生存空间比 Java 小。
编程开发靠自学完全没有问题,网上的学习资源也非常丰富,唯一的不足是“摸着石头过河”,常常要花费不少时间去琢磨尝试。最常用的学习方法是看相关的书籍和视频课程,在学习的最初阶段,我更建议你找些免费的慕课视频看一看,国内的可以去慕课网、网易云课堂、中国大学MOOC、腾讯课堂、百度传课这些平台找。