A one-way function is a theoretical function where given any input, the solution can be easily found, but if given any output of the function, it is hard (or not as quick) to find what input it came from. Here is an example of a one-way function: You have three inputs: A, B, and C. Then, you have one output: X. All three inputs give you X as an output. So, if you then are given X as the output, what is the input? You cannot tell. Therefore, you can quickly find the output for any given input (A, B, or C), but you cannot quickly find the input for any given output (X). You most likely can already see the parallels between one-way functions and the P vs. NP problem. If one-way functions were proven to exist, then that would answer the P vs. NP problem because it would show that a “problem” definitely exists where the solution can be quickly verified, but not solved just as quickly. Interestingly, many computer scientists and mathematicians actually believe that this is the case, but obviously they don’t have the proper proofs to support this stance, which is the “P != NP” stance.

Those who believe P = NP think that one-way functions do not actually exist and that it is possible for a problem to be solved just as quickly as the known answer can be verified. There have been major obstacles though when P = NP has been tried to be proven. There are thousands of NP problems, or problems that can be solved only in non-polynomial time using modern methods. If one NP problem were found to actually be a P problem, then that means that all other NP problems would also be P problems. On the flip side of that, if it is ever proven that a certain NP problem cannot possibly be a P problem, then that means all other NP problems are also not P problems. Essentially, proving the existence of a one-way function would also prove that all NP problems are not P problems, whereas a proof showing that one-way functions cannot exist would actually not prove anything. The issue is that there have been attempts on nearly all NP problems to prove that one is actually a P problem, but no accurate proof has ever been completed. So, many computer scientists believe that P != NP since they have worked with hundreds or potentially thousands of known NP problems and have not been able to prove that they can actually be solved quickly.

A one-way function may seem like a simple concept to understand, but amazingly, it has proven very difficult to verify whether such a function actually exists. Some mathematicians and computer scientists even believe that new math will have to be discovered before an accurate proof can ever actually come about. Interestingly, one-way functions have been assumed to exist for quite awhile now and are extremely important within cybersecurity. So far, no one has been able to break functions that are thought to be one-way functions, further giving support to the idea that P != NP. If one-way functions were proven to not exist, however, we would have major problems on our hand. As digital cryptography heavily relies on the existence of one-way functions. So yeah...hopefully we figure out that one-way functions don’t exist *after* we have improved our ways of encrypting digital information.

**Programming Languages and Resources for Web Developers**

The easiest way to learn coding is via web design programming. You should lean coding languages that are in use by millions of sites. HTML, CSS (or HTML5 & CSS3) PHP, MySQL, JavaScript (or JS frameworks like jQuery, Angular, React, Node, or Express) or MongoDB, Apache, Ruby on Rails, and Linux are all related to web design coding. For beginners interested in learning more about web design and development, here are a list of step-by-step training guide articles: i- Become CMS specialist, ii- Become front-end specialist, iii- Become expert SQL developer, iv- Become expert PHP developer

Discussed coding languages are well suited for those interested in pursuing a career in web design and development; however, other options are mobile App design and development, system admin and software engineering. It is advisable to consult with an IT counselor to understand what options best fits your skills. For instance, if you want to be a software engineer, learning HTML and CSS might not fit the bill. Here is an excellent article for learning more on coding and technology career roadmap. Once you know what career path you wish to pursue, you can make a plan on what, when, and how to learn. There are lots of online resources for learning coding and technology in general. For teenagers and high school students, High School Technology Services offers variety of hands-on training. For adults and professionals, Coding Bootcamps and DC Web Makers Companies offer basic to advance project-based programming and technology classes.