Some Top Questions About Blockchain in Zhihu

区块链技术是什么?未来可能用于哪些方面?   区块链是什么,如何简单易懂地介绍区块链? 区块链技术如此有前景,为什么国内没有专门做这方面应用的公司? 想了解Bitcoin和Block Chain 背后的整个原理,该从哪儿着手? 如何看待中国人民银行说争取早日推出自己发行的数字货币? 中国人民银行准备发行自己的数字货币会是什么?这对比特币来说意味着什么? 各位認為被評價為Bitcoin 2.0的Ethereum(以太坊)是否有發展空間和成功潛力? 区块链技术的发展对于支付宝等第三方支付工具会带来哪些影响?

Some Top Questions About Blockchain in Quora

What is a blockchain? How do I become a bitcoin/blockchain expert? Is blockchain a fad or a revolutionary technology? How is blockchain verifiable by public and yet anonymous? How exactly is Nasdaq using the blockchain? What industries will the Blockchain disrupt? How is the technology blockchain going to revolutionize industries? How does Bitcoin Blockchain work and what are the rules behind it? Which banks are using blockchain technologies? What are some unconventional uses of blockchains?

Some Websites

IBM Blockchain 101: Quick-start guide for developers Hyperledger Project 区块链技术中文社区 blockchaindev.org 巴比特 blockchain.com IBM Blockchain blockchain.info blockgeeks.com Bitcoin Academic Research The bitcoin series - Table of Contents bitcoin.org bitcoin.com chinaledger hyperledger ripple Wangxiang blockchain labs okcoin 比特币中国 ethereum White Paper Blockchains Startups Bitcoin Series 24: The Mega-Master Blockchain List The bitcoin series - Table of Contents IC3: ADVANCING THE SCIENCE AND APPLICATIONS OF BLOCKCHAINS

One of the things that cryptocurrency, and really any new genre of technology, is notorious for is the sheer quantity of vocabulary that gets generated to describe all of the new concepts. Anyone dealing with peer-to-peer internet software on anything more than a casual basis needs to deal with concepts of cryptography, including hashes, signatures and public and private keys, symmetric and asymmetric encryption, denial of service protection, as well as arcane constructions such as distributed hash tables and webs of trust. New Bitcoin users are forced to contend with learning not just the common basics of cryptography, but also additional internal jargon such as “blocks”, “confirmations”, “mining”, “SPV clients” and “51% attacks”, as well as economic concepts like incentive-compatibility and the fine nuances of centralization and decentralization. Ethereum, being a decentralized application development platform based on a generalization of a cryptocurrency, necessarily incorporates both of these sets of concepts, as well as adding many of its own. To help anyone new to Ethereum, whether they are in it as cryptocurrency enthusiasts, business owners, social or political visionaries, web developers or are simply ordinary people looking to see how the technology can improve their lives, the following list is intended to provide a basic summary of the vocabulary that Ethereum users often tend to use:

Cryptography

See also: http://en.wikipedia.org/wiki/Public-key_cryptography

Computational infeasibility: a process is computationally infeasible if it would take an impracticably long time (eg. billions of years) to do it for anyone who might conceivably have an interest in carrying it out. Generally, 280  computational steps is considered the lower bound for computational infeasibility.

Computationally infeasible is basically how one says ‘really hard’ in an academic paper without sounding silly. Almost always this term shows up in papers related to cryptography, since that is one of the few fields where one wants to try to make things as difficult as possible. † However, this is a pretty slippery concept, because what is computationally infeasible one decade may be trivial the next. For example, when DES was originally introduced, the NSA claimed it would take millions of years to brute force a key. But 20 years later, it could be done in days or weeks (albeit with a substantial amount of hardware).

Hash: a hash function (or hash algorithm) is a process by which a document (ie. a piece of data or file) is processed into a small piece of data (usually 32 bytes) which looks completely random, and from which no meaningful data can be recovered about the document, but which has the important property that the result of hashing one particular document is always the same. Additionally, it is crucially important that it is computationally infeasible to find two documents that have the same hash. Generally, changing even one letter in a document will completely randomize the hash; for example, the SHA3 hash of “Saturday” is c38bbc8e93c09f6ed3fe39b5135da91ad1a99d397ef16948606cdcbd14929f9d , whereas the SHA3 hash of Caturday is b4013c0eed56d5a0b448b02ec1d10dd18c1b3832068fbbdc65b98fa9b14b6dbf . Hashes are usually used as a way of creating a globally agreed-upon identifier for a particular document that cannot be forged.

Encryption: encryption is a process by which a document (plaintext) is combined with a shorter string of data, called a key (eg. c85ef7d79691fe79573b1a7064c19c1a9819ebdbd1faaab1a8ec92344438aaf4 ), to produce an output (ciphertext) which can be “decrypted” back into the original plaintext by someone else who has the key, but which is incomprehensible and computationally infeasible to decrypt for anyone who does not have the key.

Public key encryption: a special kind of encryption where there is a process for generating two keys at the same time (typically called a private key and a public key), such that documents encrypted using one key can be decrypted with the other. Generally, as suggested by the name, individuals publish their public keys and keep their private keys to themselves.

Digital signature: a digital signing algorithm is a process by which a user can produce a short string of data called a “signature” of a document using a private key such that anyone with the corresponding public key, the signature and the document can verify that (1) the document was “signed” by the owner of that particular private key, and (2) the document was not changed after it was signed. Note that this differs from traditional signatures where you can scribble extra text onto a document after you sign it and there’s no way to tell the difference; in a digital signature any change to the document will render the signature invalid.

Blockchains

See also: https://bitcoin.org/en/vocabulary

Address: an address is essentially the representation of a public key belonging to a particular user; for example, the address associated with the private key given above is cd2a3d9f938e13cd947ec05abc7fe734df8dd826 . Note that in practice, the address is technically the hash of a public key, but for simplicity it’s better to ignore this distinction.

Transaction: a transaction is a document authorizing some particular action associated with the blockchain. In a currency, the dominant transaction type is sending currency units or tokens to someone else; in other systems actions like registering domain names, making and fulfilling trade offers and entering into contracts are also valid transaction types.

Block: a block is a package of data that contains zero or more transactions, the hash of the previous block (“parent”), and optionally other data. The total set of blocks, with every block except for the initial “genesis block” containing the hash of its parent, is called the blockchain and contains the entire transaction history of a network. Note that some blockchain-based cryptocurrencies instead use the word “ledger” for a blockchain; the two are roughly equivalent, although in systems that use the term “ledger” each block generally contains a full copy of the current state (eg. currency balances, partially fulfilled contracts, registrations) of every account allowing users to discard outdated historical data.

Account: an account is the entry in a ledger, indexed by its address, that contains the complete data about the state of that account. In a currency system, this involves currency balances and perhaps unfulfilled trade orders; in other cases more complex relationships may be stored inside of accounts.

Proof of work: one important property of a block in Bitcoin, Ethereum and many other crypto-ledgers is that the hash of the block must be smaller than some target value. The reason this is necessary is that in a decentralized system anyone can produce blocks, so in order to prevent the network from being flooded with blocks, and to provide a way of measuring how much consensus there is behind a particular version of the blockchain, it must in some way be hard to produce a block. Because hashes are pseudorandom, finding a block whose hash is less than 0000000100000000000000000000000000000000000000000000000000000000  takes an average of 4.3 billion attempts. In all such systems, the target value self-adjusts so that on average one node in the network finds a block every N minutes (eg. N = 10 for Bitcoin and 1 for Ethereum).

Nonce: a meaningless value in a block which can be adjusted in order to try to satisfy the proof of work condition.

Mining: mining is the process of repeatedly aggregating transactions, constructing a block and trying difference nonces until a nonce is found that satisfies the proof of work condition. If a miner gets lucky and produces a valid block, they are granted a certain number of coins as a reward as well as all of the transaction fees in the block, and all miners start trying to create a new block containing the hash of the newly generated block as their parent.

Stale: a stale is a block that is created when there is already another block with the same parent out there; stales typically get discarded and are wasted effort.

Fork: a situation where two blocks are generated pointing to the same block as their parent, and some portion of miners see one block first and some see the other. This may lead to two blockchains growing at the same time. Generally, it is mathematically near-certain that a fork will resolve itself within four blocks as miners on one chain will eventually get lucky and that chain will grow longer and all miners switch to it; however, forks may last longer if miners disagree on whether or not a particular block is valid.

Double spend: a deliberate fork, where a user with a large amount of mining power sends a transaction to purchase some product, then after receiving the product creates another transaction sending the same coins to themselves. The attacker then creates a block, at the same level as the block containing the original transaction but containing the second transaction instead, and starts mining on the fork. If the attacker has more than 50% of all mining power, the double spend is guaranteed to succeed eventually at any block depth. Below 50%, there is some probability of success, but it is usually only substantial at a depth up to about 2-5; for this reason, most cryptocurrency exchanges, gambling sites and financial services wait until six blocks have been produced (“six confirmations”) before accepting a payment.

Double-spending is a failure mode of digital cash schemes, when it is possible to spend a single digital token twice. Since, unlike physical token money such as coins, electronic files can be duplicated, and hence the act of spending a digital coin does not remove its data from the ownership of the original holder, some other means are needed to prevent double-spending.

See also: https://en.bitcoin.it/wiki/Double-spending

SPV client (or light client) - a client that downloads only a small part of the blockchain, allowing users of low-power or low-storage hardware like smartphones and laptops to maintain almost the same guarantee of security by sometimes selectively downloading small parts of the state without needing to spend megabytes of bandwidth and gigabytes of storage on full blockchain validation and maintenance.

Ethereum Blockchain

See also: http://ethereum.org/ethereum.html

Serialization: the process of converting a data structure into a sequence of bytes. Ethereum internally uses an encoding format called recursive-length prefix encoding (RLP), described here.

The purpose of RLP (Recursive Length Prefix) is to encode arbitrarily nested arrays of binary data, and RLP is the main encoding method used to serialize objects in Ethereum. The only purpose of RLP is to encode structure; encoding specific atomic data types (eg. strings, ints, floats) is left up to higher-order protocols; in Ethereum integers must be represented in big endian binary form with no leading zeroes (thus making the integer value zero be equivalent to the empty byte array).

Patricia tree (or trie): a data structure which stores the state of every account. The trie is built by starting from each individual node, then splitting the nodes into groups of up to 16 and hashing each group, then making hashes of hashes and so forth until there is one final “root hash” for the entire trie. The trie has the important properties that (1) there is exactly one possible trie and therefore one possible root hash for each set of data, (2) it is very easy to update, add or remove nodes in the trie and generate the new root hash, (3) there is no way to modify any part of the tree without changing the root hash, so if the root hash is included in a signed document or a valid block the signature or proof of work secures the entire tree, and (4) one can provide just the “branch” of a tree going down to a particular node as cryptographic proof that that node is indeed in the tree with that exact content. Patricia trees are also used to store the internal storage of accounts as well as transactions and ommers. See here for a more detailed description.

GHOST: GHOST is a protocol by which blocks can contain a hash of not just their parent, but also hashes for stales that are other children of the parent’s parent (called ommers). This ensures that stales still contribute to blockchain security, and mitigates a problem with fast blockchains that large miners have an advantage because they hear about their own blocks immediately and so are less likely to generate stales.

Uncle: See Ommer, the gender-neutral alternative to aunt/uncle.

Ommer: a child of a parent of a parent of a block that is not the parent, or more generally a child of an ancestor that is not an ancestor. If A is an ommer of B, B is a nibling (niece/nephew) of A.

Account nonce: a transaction counter in each account. This prevents replay attacks where a transaction sending eg. 20 coins from A to B can be replayed by B over and over to continually drain A’s balance.

EVM code: Ethereum virtual machine code, the programming language in which accounts on the Ethereum blockchain can contain code. The EVM code associated with an account is executed every time a message is sent to that account, and has the ability to read/write storage and itself send messages.

Message: a sort of “virtual transaction” sent by EVM code from one account to another. Note that “transactions” and “messages” in Ethereum are different; a “transaction” in Ethereum parlance specifically refers to a physical digitally signed piece of data that goes in the blockchain, and every transaction triggers an associated message, but messages can also be sent by EVM code, in which case they are never represented in data anywhere.

Storage: a key/value database contained in each account, where keys and values are both 32-byte strings but can otherwise contain anything.

Externally owned account: an account controlled by a private key. Externally owned accounts cannot contain EVM code.

Contract: an account which contains, and is controlled by, EVM code. Contracts cannot be controlled by private keys directly; unless built into the EVM code, a contract has no owner once released.

Ether: the primary internal cryptographic token of the Ethereum network. Ether is used to pay transaction and computation fees for Ethereum transactions.

Gas: a measurement roughly equivalent to computational steps. Every transaction is required to include a gas limit and a fee that it is willing to pay per gas; miners have the choice of including the transaction and collecting the fee or not. If the total number of gas used by the computation spawned by the transaction, including the original message and any sub-messages that may be triggered, is less than or equal to the gas limit, then the transaction processes. If the total gas exceeds the gas limit, then all changes are reverted, except that the transaction is still valid and the fee can still be collected by the miner. Every operation has a gas expenditure; for most operations it is 1, although some expensive operations fave expenditures up to 100 and a transaction itself has an expenditure of 500.

Non-blockchain

EtherBrowser: the upcoming primary client for Ethereum, which will exist in the form of a web browser that can be used to access both normal websites and applications built on top of the Ethereum platform

Whisper: an upcoming P2P messaging protocol that will be integrated into the EtherBrowser

Swarm: an upcoming P2P data storage protocol optimized for static web hosting that will be integrated into the EtherBrowser

SolidityLLLSerpent and Mutan: programming languages for writing contract code which can be compiled into EVM code. Serpent can also be compiled into LLL. Solidity is a JavaScript-like language, Serpent is a Python-like language, and LLL is an acronym for Lisp-like language.

PoC: proof-of-concept, another name for a pre-launch release

Surrounding concepts: applications and governance

Decentralized application: a program which is run by many people which either uses or creates a decentralized network for some specific purpose (eg. connecting buyers and sellers in some marketplace, sharing files, online file storage, maintaining a currency). Ethereum-based decentralized applications (also called Đapps, where the Đ is the Norse letter “eth”) typically consist of an HTML/Javascript webpage, and if viewed inside the EtherBrowser the browser recognizes special Javascript APIs for sending transactions to the blockchain, reading data from the blockchain and interacting with Whisper and Swarm. A Đapp typically also has a specific associated contract on the blockchain, though Đapps that facilitate the creation of many contracts are quite possible.

Decentralized organization: an organization that has no centralized leadership, instead using a combination of formal democratic voting processes and stigmergic self-organization as their primary operating principles. A less impressive but sometimes confused concept is a “geographically distributed organization”, an organization where people work far apart from each other and which may even have no office at all; GDOs can still have formal centralized leadership.

Theseus criterion: a test for determining how decentralized an organization is. The test is as follows: suppose the organization has N people, and aliens try to pick K people in the organization at a time (eg. once per week) and zap them out of existence, replacing each group with K new people who know nothing about the organization. For how high K can the organization function? Dictatorships fail at K = 1 once the dictator is zapped away; the US government does slightly better but would still be in serious trouble if all 638 members of the Senate and Congress were to disappear, where as something like Bitcoin or BitTorrent is resilient for extremely high K because new agents can simply follow their economic incentives to fill in the missing roles. A stricter test, the Byzantine Theseus criterion, involves randomly substituting K users at a time with malicious actors for some time before replacing them with new users.

Decentralized autonomous organization: decentralized organizations where the method of governance is in some fashion “autonomous”, ie. it’s not controlled by some form of discussion process or committee.

No common language criterion: a test for determining how autonomous an organization is. The test is as follows: suppose the N people in the organization speak N different languages, with none in common. Can the organization still function?

Delegative democracy (or liquid democracy): a governance mechanism for DOs and DAOs where everyone votes on everything by default, but where individuals can select specific individuals to vote for them on specific issues. The idea is to generalize the tradeoff between full direct democracy with every individual having equal power and the expert opinion and quick decision making ability provided by specific individuals, allowing people to defer to friends, politicians, subject matter experts or anyone else to exactly the extent that they want to.

Futarchy: a governance mechanism originally proposed by Robin Hanson for managing political organizations, but which is actually extremely applicable for DOs and DAOs: rule by prediction market. Essentially, some easily measurable success metrics are chosen, and tokens are released which will pay out some time in the future (eg. after 1 year) depending on the values of those success metrics, with one such token for each possible action to take. Each of these tokens are traded against a corresponding dollar token, which pays out exactly $1 if the corresponding measure is taken (if the corresponding measure is not taken, both types of tokens pay $0, so the probability of the action actually being taken does not affect the price). The action that the market predicts will have the best results, as judged by the token’s high price on its market, is the action that will be taken. This provides another, autonomous, mechanism for selecting for and simultaneously rewarding expert opinion.

Economics

Token system: essentially, a fungible virtual good that can be traded. More formally, a token system is a database mapping addresses to numbers with the property that the primary allowed operation is a transfer of N tokens from A to B, with the conditions that N is non-negative, N is not greater than A’s current balance, and a document authorizing the transfer is digitally signed by A. Secondary “issuance” and “consumption” operations may also exist, transaction fees may also be collected, and simultaneous multi-transfers with many parties may be possible. Typical use cases include currencies, cryptographic tokens inside of networks, company shares and digital gift cards.

Namespace: a database mapping names to values. In the simplest example anyone can register an entry if the name has not already been taken (perhaps after paying some fee). If a name has been taken then it can only be changed (if at all) by the account that made the original registration (in many systems, ownership can also be transferred). Namespaces can be used to store usernames, public keys, internet domain names, token systems or other namespaces, and many other applications.

Identity: a set of cryptographically verifiable interactions that have the property that they were all created by the same person

Unique identity: a set of cryptographically verifiable interactions that have the property that they were all created by the same person, with the added constraint that one person cannot have multiple unique identities

Incentive compatibility: a protocol is incentive-compatible if everyone is better off “following the rules” than attempting to cheat, at least unless a very large number of people agree to cheat together at the same time.

Basic income: the idea of issuing some quantity of tokens to every unique identity every period of time (eg. months), with the ultimate intent being that people who do not wish to work or cannot work can survive on this allowance alone. These tokens can simply be crafted out of thin air, or they can come from some revenue stream (eg. profit from some revenue-generating entity, or a government); in order for the BI to be sufficient for a person to live on it alone, a combination of revenue streams will likely have to be used.

Public good: a service which provides a very small benefit to a very large number of people, such that no individual has a large effect on whether or not the good is produced and so no one has the incentive to help pay for it.

Reputation: the property of an identity that other entities believe that identity to be either (1) competent at some specific task, or (2) trustworthy in some context, ie. not likely to betray others even if short-term profitable.

Web of trust: the idea that if A highly rates B, and B highly rates C, then A is likely to trust C. Complicated and powerful mechanisms for determining the reliability of specific individuals in specific concepts can theoretically be gathered from this principle.

Escrow: if two low-reputation entities are engaged in commerce, the payer may wish to leave the funds with a high-reputation third party and instruct that party to send the funds to the payee only when the product is delivered. This reduces the risk of the payer or payee committing fraud.

Deposit: digital property placed into a contract involving another party such that if certain conditions are not satisfied that property is automatically forfeited to the counterparty

Hostage: digital property placed into a contract such that if certain conditions are not satisfied that property is automatically either destroyed or donated to charity or basic income funds, perhaps with widely distributed benefit but necessarily with no significant benefit to any specific individual.

OTHERS

GH/s MH/s GHashes/s ETH

个人基本情况介绍

学校:东北大学(985)

学院:软件学院

专业:软件工程(国际班(英语))

Software Engineering (International) program is an independent major in Software Collegeof Northeastern University, its 42 top students are highly-selected by passing severalcompetitive exams and a final interview, receiving English-language technical teaching byprofessors from USA, UK and Ireland.

绩点:87.17/100 (截止至2015年7月)

专业排名:5/42

其他的看CV吧~ (CV截止至2015年7月)

CV Zixuan Xie (English Version)

CV Zixuan Xie (English Version)

谢自轩简历中文版

PS: 自己開始就鐘意中大嘅電腦專業,所以幾乎冇申請其他學校。

参加的夏令营:中山大学数据科学与计算机学院

参加的预推免面试:浙江大学软件工程专硕

拿到预录取offer:中山大学计算机科学与技术学硕 浙江大学软件工程专硕 中科院深圳先进技术研究院计算机科学与技术学硕

最终录取:中山大学计算机科学与技术学硕

Prerequisites

保研知识科普

请前往自己学校教务处查看关于推荐优秀应届本科毕业生免试攻读研究生工作实施方案的相关文件。

请前往自己理想学校研究生招生处查看关于接受推荐免试研究生的相关文件。

查看学信网一些相关资料。

就东北大学而言,需要知道以下一些基础的概念:保研,学分,绩点,GPA,奖学金评比的综合成绩与出国保研用的成绩的区别,双优政策,保研政策等等。可以参考之前我做内培的slides或者自行百度。每年的保研政策可能有少许出入,请细咨相关部门负责推免政策的老师。

然后需要说一下,两个重大事项–夏令营预推免,这两个项目都是各个学校自己组织的,但是基本上所有推免的学生都将从这两次选拔中录取。

这两个事项的关系是这样的,有的学校会在5月到8月期间组织一次夏令营选拔学生(最好寒假就开始关注准备,南大的夏令营一般非常早),然后再在9月份组织一个预推免再次录一批学生,比如上海交通大学计算机,一般来讲,夏令营会比预推免难度大一些,而且参加过夏令营但未被录取的同学将不能参加第二次的预推免,也就是说夏令营和预推免只能二选一哦。那为什么选择夏令营呢?第一选择的范围广,好的老师还有名额,第二早完成早超脱,夏令营录取了之后,就可以浪起了!所以自己权衡一下吧,参加哪一个。有的学校没有夏令营,只有预推免,比如浙江大学计算机、清华大学软件。反正所有的学校两个项目总会有一次的。每年情况不一样,敬请留意。

保研信息获取

保研论坛

各种夏令营的信息里面都会发布,然后大家也会在里面讨论啥的,挺好的,我的信息很大一部分是从这里面来的。

多留意自己理想学校研究生招生处或者学院关于接受推荐免试研究生的相关文件或者夏令营文件。

保研的前期准备

阶段一:定位

这个阶段大概是大三的寒假里。首先确定一下,是想读计算机or继续读软件;然后确定一个专业方向;浏览保研论坛中,夏令营专题帖中的各个学校,给自己选择几个学校,从这几个学校中选择几个导师(下面详细讲择校)。

对于软英的学弟学妹们,除了看大陆的学校,还可以关注一下香港的一些学校,比如香港中文大学、香港科技大学等都会在3–5月份陆续推出夏令营活动,夏令营招收的都是研究型的硕士或者博士,而不是授课型的(研究型和授课型的区别我就不多说了),听说只需要面试就可以,当然面试肯定是全英文的。表现良好的还有机会拿到香港政府奖学金,基本可以抵掉在港的学费了!想了解这方面资讯的可以私聊我,我把去香港的学长们的联系方式告诉你们,这里还是不方便透露的。

关于择校

学校的知名度毫无疑问将成为大家选择学校的一个最主要的指标,毕竟知名度高的学校能差到哪里去呢;其次是看专业,有的学校知名度是很高,但是没有你喜欢的方向呀;然后是导师,导师的科研水平、实验室的氛围等等;最后当然还要考虑一下地理位置啦。 不过就我个人而言,已经铁了心来中山大学,也就没有择校这个问题了。

首先是专业的选择。到了这个时候,你应当非常清楚的知道你想读什么方向,比如我们这届大部分人都想读“机器学习”,毕竟这个今年大火!那么机器学习搞得好的有哪些学校呢,如南京大学lamda实验室。

然后是导师的选择,同样是机器学习的老师,如何判断这个老师的科研水平呢?第一个看老师的个人主页,看他/她的论文情况,近几年有没有发论文,论文中是第几作者,和他/她一起发论文的是学生还是其他的研究员。然后google scholar一下,看这个老师的h-index,搜索的时候如果中文名没有,换成拼音试一下。

接着是地理位置,这个我还比较看重啦,因为毕竟是南方的孩子,不想在北方呆着了,所以我个人找学校的时候,同样档次的学校会更偏爱南方的。

最后是学校的知名度,这个百度一下全国计算机高校排名就能看到了,排在前面的无非是“清华”、“北大”、“北航”、“上交”、“哈工大”、“浙大”、“南大”再加上一个非高校的“中科院”。

还想再说一句,适合你的才是好的!

阶段二:文书准备

材料的准备是相当的重要。给老师发邮件的时候,毕竟看不到你,看到的是你的材料,所以要想办法在材料中表现你自己。

首先是个人简历。一般包括这几个方面:

  1. 个人基本情况
  2. 研究方向
  3. 学业情况,排名啊,绩点啊
  4. 专业技能,你会点儿啥
  5. 所获荣誉,至今为止得过什么奖啊
  6. 实习经历,一般要保研的同学不是留校实习就是去东软了,毕竟请假参加夏令营容易些
  7. 项目和科研经历,我们软件工程的话,项目做的可能多一些,有科研的话那真是极好的。我两样都不多,所以项目上,我把实验课和东软实训的都写上去了
  8. 社会活动,你是一个社会人,得积极参加社会活动来体现你的社交能力等
  9. 个性和爱好,可有可无,CV上空了一块不好看

然后是个人陈述Statement of PurposePersonal Statement,有的学校需要,有的学校不需要。就是讲讲自己的研究兴趣,这个兴趣是如何产生的,自己为之做了多少努力,然后我们这个专业很特殊,是什么样的balabalabala……基本就是这一些,最有总结,我真的很想来你们学校,为什么等等。

阶段三:机试准备和面试准备

机试准备

中大今年没有机试。

具体准备方法因学校而异。

推荐书籍:刘汝佳的《算法竞赛入门经典》,时间充足,使用第二版紫色的,时间紧迫,使用第一版蓝色的

怎么刷:从头到尾读,一边读,一边练,把课后的oj中的题目都做了。反正跟着这本书的节奏来就行了,要刷什么题库,什么oj啥的,这本书里面会讲的很清楚的,慢慢看下去。最好有充足的时间。

面试准备

面试三大宝–英语、自信、扯得好

一般面试第一关就是英语,这个时候口语好的同学会特别占优势,一口流利纯正的英语,会让面试官觉得你很牛逼,一旦这个印象有了,接下来就会很顺利了。怎么准备?这个真的靠平时积累,大一、大二的同学还有时间可以练一练,比如说参加东北大学全明星的晨读和英语角,大三的同学如果想提高真的得抓紧时间了。

自信,处事不惊、遇事不慌,展现出最真实的自己–我知道的就好好回答,我不知道的就说不知道,难道因为我这个问题不知道你就否定我?我的能力在那里,只是你没有问到点子上。面试的时候切勿慌慌张张,很自然的肢体语言,很从容的笑容,响亮的回答都是给你加分的点。毕竟能够保研的同学都是不差的,所以你的思考方式,处事态度成为很重要的评判标准。

扯得好,并不是胡说八道,而是能够很好的转移话题,或者说牵引着面试官提问。当一个问题回答不出的时候,不妨大胆说,这个问题我不知道,但是我知道……把话题牵到你知道的领域。面试只有这么几分钟,应当在这几分钟内,最好的表现出自己知道的东西。

当然不能一点儿专业储备都没有,这是绝对不可以的!!!

上面讲的三大宝是在专业储备好之后,作为辅助的tips。那么面试需要复习些什么的?

首先是专业课–数据结构、计算机网络、操作系统+计算机组成原理、数据库等等。

然后是数学课–高等代数(线性代数)、离散数学、概率论和数理统计。

这几门课中,我被问的最多的就是数据结构和高等代数;计算机网络、操作系统+计算机组成原理、离散数学没有被问过。这些课复习的时候,别去刷题了,就只要给你一个名词你能清楚地讲出来就好。

最后是你的研究方向。我是大三寒假才对机器学习感兴趣的。读一些论文,上斯坦福机器学习公开课,所以在面试的时候才能够对这一领域的问题作出回答,然后也能自己讲一讲这一领域的一些问题什么的。所以我强烈建议大家越早定下研究目标越好,越早开始这一领域的涉足,你获得的知识就越多,能够说出来的也就越多。

另外再插一句,面试的能力是靠不断积累的,想要不怯场,你就要多参加面试,所以如果有精力和时间,不妨多参加一些夏令营,哪怕是积累面试经验也是好的!

我参加夏令营以及推免面试的情况

中山大学

这是来自中大数据科学与计算机学院的夏令营活动通知:2016“科学计算与互联网+”优秀大学生夏令营活动通知,申请材料的递交,面试安排,之后的通知基本上都在学院官网上,平时多留意下一般就行。

参加夏令营车马费最多给报销来回火车硬座的价格。住宿安排在gogo新天地的精品J酒店,环境也很不错。夏令营日程安排如下: 2016“科学计算与互联网+”优秀大学生夏令营名单公布

日程安排  
7月18日 营员报到
7月19日 开幕式、实验室开放参观、参观天河二号
7月20日 学院相关学科带头人学术交流、导师见面会
7月21日 面试选拔优秀学员
7月22日 返程

相关照片

住宿

营员证

伙食


2016中山大学“科学计算与互联网+”夏令营活动报到须知

  1. 市外高校学生(安排住宿) 报到时间:7月18日11点-19点 报到地点:广州大学城新天地J精品酒店 路线:地铁4号线大学城北站D出口,出站后可换乘公交车到中环东路站(也可乘坐大学城专线蓝色出租车,不建议坐摩托车,不安全),下车往回走即可看到新天地(楼下有必胜客那栋),进去找到韩国炸鸡X啤酒,在这家店的对面有直落电梯可上3楼即到酒店。 报到需带身份证和学生证原件,入住酒店必须出示身份证原件登记。
  2. 市内高校学生 报到时间:7月18日11点-16点 报到地点:中山大学数据科学与计算机学院A107研究生工作办公室 路线:地铁4号线大学城北站D出口,出站后可换乘公交车到中环东路站,下车往回走过人行横道即进入中大教学区,直行往行政楼方向,到行政楼后往中大牌坊方向,牌坊的右边软件学院大楼一楼A107。如地铁口乘坐出租车可直接到中大牌坊下车即可。 报到需带身份证和学生证原件。

报到时领取营员证及餐券,营员证须在21日面试前归还学院,所有早中晚的用餐均在教学区的行政楼餐厅一楼。


天河二号参观

天河二号参观

实验室参观

部分实验室有纪念品

实验室参观

讲座

讲座

讲座

讲座

面试

非常容易。

  1. 有一些信封,里面有一段英文文献,从这堆信封中抽一封,读这段英文文献,读完之后立即翻译,我读到的是关于Deep Blue的关于AI方面的,非常容易。
  2. 然后再中文自我介绍,六七个老师看着你的CV问问题,当时问我的是关于我项目中的一些实现问题,然后问了我数据结构中的一些基本概念。
  3. 问我为什么来中大,家乡是哪儿的balabala。

总共15min,过程非常流畅,但个人觉得不太具有技术性。

浙江大学

这个我曾经向往了许久的学校。但是我可以说一句,水水的,没有机试,只有面试。东北大学每年去浙江大学计算机或软件的同学都非常多,不仅有计算机学院的,软件学院的,还有不少自动化的。 浙江大学玉泉校区挺旧的,相当有味道,时节刚好,整个校园都是桂花的香味儿~很美很美~

面试

  1. 分了很多个小组,我是小组第一个面试的,早上八点多一点。
  2. 先英文自我介绍,然后五六个老师问我问题,关于我们专业的(软件工程英语国际班),关于做的iOS方面的,关于你的兴趣爱好的,以上都是用英语。由于我们专业课都是外教上,所以这些对于我来说都没用问题。
  3. 用中文和我唠嗑,问我对浙大的印象,对之后研究生生活是怎么计划的,不知道为什么老师们都不问我些非常技术性的问题,取而代之的都是些家常。
  4. 你支持法轮功吗?问到这个问题的时候,我还以为要考察一下我的辩证思想呢,正准备大说一顿,老师打断了我:“直接说支持不支持”。“不支持”。“好了,可以了,下一个”。

总时间大概15min。

最后结果出来了,浙大软件也预录取了。

联系导师

自己当时就想着只来中大,我2016年6月2日给吴迪老师发了邮件表明我有来他实验室的意愿,具体的老师简介可以参考学院官网的导师简介,很多老师也会在个人简介上写研究生招生,例如吴迪老师郑伟诗老师郑子彬老师等等。直接联系他们就行。


面试真的没有太考察你的专业知识,考查的是你思维的方式,说话的方式,随机应变的能力,你的研究兴趣,对研究方向的热情,还有你的自信!有什么专业知识学不到呢?但是这一些软实力却不是容得到的。

以上仅为个人经历以及个人见解,只作为参考作用,如果有其他想了解的,欢迎给我发邮件:zihintse@gmail.com

谢自轩 2017年1月13日明德园。

Some Definitions

Blockchain

  1. A blockchain is a distributed database.
  2. A blockchain maintains a continuously-growing list of ordered records called blocks.
  3. Each block contains a timestamp and a link to a previous block.
  4. Once recorded, the data in a block cannot be altered retroactively. (By design blockchains are inherently resistant to modification of the data.)

Blockchains are secure by design and an example of a distributed computing system with high byzantine fault tolerance. Decentralised consensus can therefore be achieved with a blockchain. This makes blockchains suitable for the recording of events, title, medical records and other records management activities, identity management, transaction processing and proving provenance. This offers the potential of mass disintermediation and vast repercussions for how global trade is conducted.

The first blockchain was conceptualised by Satoshi Nakamoto in 2008 and implemented the following year as a core component of the digital currency bitcoin, where it serves as the public ledger for all transactions. Through the use of a peer-to-peer network and a distributed timestamping server, a blockchain database is managed autonomously. The invention of the blockchain for bitcoin made it the first digital currency to solve the double spending problem, without the use of a trusted authority or central server. The bitcoin design has been the inspiration for other applications.

Double Spending

byzantine fault tolerance

merkle

trie

MARKET CAP

HASH RATE

References

Blockchain (database) Wikipedia

最小生成树Prim算法理解

最小生成树-Prim算法和Kruskal算法

Prim算法和Kruskal算法