推荐几个非常硬核的公众号
今天推荐几个优质的公众号,他们有态度、有温度、有质量,值得拥有。 stormzhang ID:googdev 张哥可以算是每个技术人的榜样,前码农&产品人,现在成功转型成为一名自由职业者,创业者。另外,张哥也是公众号领域为数不多的同 …
就是完全零基础,想报名培训班去学习,应该选择哪个方面?
比如谷歌商店里的vpn都是用什么技术开发的?
看了好多培训机构的课程,有python,java, go, linux运维,前端等等。
该选择哪个?
希望专业的程序员,软件工程师能解答,非常感谢。
说实话,写个VPN还属于比较进阶的开发了。
1,最大的头就是 计算机网络知识
2,掌握至少一门编程语言
3,多线程/异步IO 要搞清楚,就算你用GO来写,也至少要知道原理
以上的话,你可以写一个VPN的核心,类似 v2ray-core, clash-core,他们可以用作服务器,也可以用作客户端,但是客户端呢一般还要搞下UI
比如你要做成App,如果你要跨平台(PC, MAC, Android,Linux) 的客户端,那么你需要:
1,至少一种 跨平台的 UI框架
2,和该平台相关的系统知识
3,如果Android平台,那么需要JNI调用等等这些知识,如果是要Android原生,那么还需要懂Android SDK和Java或者Kotlin。
如果还要iOS端,那么:
1,iOS的Network Extension 需要了解
2,UIKit或者SwiftUI一种
3,swift或者Objective-c中的一种语言
4,需要高效的话,那么C语言。
同上,语言是次要的,重要的是通信原理。几个优秀的代理软件 v2ray, ss(ssr) 在github 上都有源码,可以自己找来看看。 vpn 项目没有太关注
了解这个最好了解是了解下历史, ssh tunnel 开始的逐渐演进
语言是次要的,要做vpn需要了解网络编程的原理,可以去找点网课学一下。
不用学习哪些技术,疯狂支持无界和自由门,让它们永远不会被封住,然后广传,就人人都能翻墙了。
go吧,简单易懂,适配性好
尤其适合各种跨平台的轻量级应用
著名翻墙软件clash就是基于go开发的
LZ先明确自己想要写什么……
以及不同平台用的语言都不一样
iOS/macOS: Swift
Android: Java/Kotlin
Windows: C#
Web: JavaScript
零基础的话建议从Java/Python开始学起。
零基础先学习如何自我学习。不然如果自己不能给自己开出书单,问题一个个问下去得累死你。
有经验的人去学技术,学了就能用上,没经验,一窍不通,给你积木也搭不起来。
如果你的想法是从服务器到客户端,通通自己搞定,没经验搞的慢,时间一长消耗斗志,一鼓作气,再而竭,三而衰。
所以你需要一个工作,让自己变得不那么零基础,
骚年有想法!
盲猜一下,能开发出VPN的程序员,大概在程序员群体里不足5%
粗略说下目前能想到的需要掌握的知识
1. 编程语言
1.1 服务端开发,c/c++/rust/go/python 得会一个
1.2 客户端开发,kotlin/swift/java/js/dart 得会一个
2. 网络通信理论,比如网络架构,各个分层的通信协议
3. 服务端系统编程(linux socket编程)
3.1. *nix的常用操作
3.2. 服务器运维知识
3.3 云服务器怎么买,怎么配
4. 客户端编程 (ios, android, pc, mac,浏览器插件)
4.1 如何注册成为某平台开发者
4.2 应用如何打包发布
5. 现有翻墙工具的设计思路
6. 墙的工作原理
如果只是开发普通应用的话,学会js就行了,其他都可以不学。web/node应用也是应用(狗头
今天推荐几个优质的公众号,他们有态度、有温度、有质量,值得拥有。 stormzhang ID:googdev 张哥可以算是每个技术人的榜样,前码农&产品人,现在成功转型成为一名自由职业者,创业者。另外,张哥也是公众号领域为数不多的同 …
知乎用户 talktomyself 发表 嗯,是的。 但是并不是因为技术更新快,涌入人员多。 国外的软件行业这些问题都有,但是并没有内卷到这种程度。 如果说是因为国外人少,我承认,有这个原因,但绝不是全部。 我国互联网行业的管理其实是特别具 …
知乎用户 诗与星空 发表 两点 1、懒。 2、你看到的 360 很可能是天擎。 天擎现在是国内大型央企、机关、事业单位最常用的企业版杀毒软件。 统一采购,强制安装。 知乎用户 暗灭 发表 编程是一个很大的概念,360 这些流氓软件也和, …
品葱用户 逃离东亚大陆洼地 提问于 6/24/2020 public class HelloWorld{ public static void main(String[] args) { int one = 10 ; int two = …
品葱用户 逃离东亚大陆洼地 提问于 6/23/2020 int a=5; int b=++a;//让a先执行自增,然后将值赋给变量b System.out.println(“a:” +a); …