小编Gra*_*smo的帖子

如何快速提高我作为程序员的能力?

我的问题不仅仅是扩展语言特定技能.我想知道任何人可能会向渴望知识的人提供什么样的建议,但缺乏方向.随意跳过这个问题.

背景:我在我的大学读过一门java计算机科学课程,但我计划主修计算机科学和电子计算机工程(ECE).我的java课程非常简陋.我们获得了一个框架,只是编辑/创建了一些方法和类来执行一个简单的任务.我们制作了一个Breakout版本,并为一个简单的连接四游戏创建了一个AI.虽然我对大O符号有点熟悉,但实际上我没有在课堂上学过它(我的下一个CS课程涵盖了这一点).在我的ECE课程中,我们还在PBASIC中编写了BOE-Bots,以便在各种障碍课程中进行竞争.作为一名工科学生,我也被介绍到matlab,虽然我只用它来做线性代数作业.总而言之,我没有太多的编程背景,但我非常喜欢到目前为止所做的一切,而且我正在寻找建立更有价值的技能的方法.

采取的步骤:在更加关注reddit的编程部分之后,我找到了Project Euler的链接.今年夏天,我一直在抨击这些问题(昨天完成了我的第42个解决方案),但我正在寻找更多方向.我一直在阅读博客文章和SO.我想学习一些关于php的东西,也许还要创建一个动态的网页,但从根本上说,我想做一些事情来改善自己,为工作世界做好准备.

问题: 你会为我推荐什么方向?我应该学习一门新语言吗?继续攻击Project Euler?阅读一些有关编程的书籍?开始一个编码项目(我甚至不知道从哪里开始)?等到上学?了解更基本的编程原则?

我想有了所有可用的路径,我只是有点不知所措,我不想陷入可能对我的职业机会有害的道路.我也很难做出决定.非常感谢您的建议!

java

6
推荐指数
3
解决办法
1314
查看次数

在任意操作中快速选择链接?

Apple提供了一个简洁的可选链接示例

class Person {
  var residence: Residence?
}

class Residence {
  var numberOfRooms = 1
}

let john = Person()

if let roomCount = john.residence?.numberOfRooms {
  println("John's residence has \(roomCount) room(s).")
} else {
  println("Unable to retrieve the number of rooms.")
}
Run Code Online (Sandbox Code Playgroud)

想象一下尝试用一些算术运算来调整条件.这会导致编译器错误,因为模运算符不支持选项.

if john.residence?.numberOfRooms % 2 == 0 { 
  // compiler error: Value of optional type Int? not unwrapped
  println("John has an even number of rooms")
} else {
  println("John has an odd number of rooms")
}
Run Code Online (Sandbox Code Playgroud)

当然,您总是可以执行以下操作,但它缺乏可选链接的简单性和简洁性.

if …
Run Code Online (Sandbox Code Playgroud)

optional chaining ios swift

5
推荐指数
1
解决办法
635
查看次数

克服堆溢出问题

我试图解决Project Euler的问题.我知道我的方法会在逻辑上起作用(它几乎立即返回小规模问题的答案).然而,它可怕地扩展.我已经尝试更改.ini文件,但无济于事.

这是我的代码:

public class Number28 {

    static int SIZE = 101; //this should be an odd number, i accidentally posted 100
    /**
     * @param args
     */
    public static void main(String[] args) {
        double start = System.currentTimeMillis();
        long spiral[][]= spiral(SIZE);
        long sum = 0;
        for(int i = 0; i < SIZE; i++)
        {
            sum += spiral[i][i];
            sum += spiral[i][SIZE - 1 - i];
        }
        System.out.println(sum - 1);
        double time = System.currentTimeMillis() - start;
        System.out.println(time);

    }
    public static long[][] spiral(int size){ …
Run Code Online (Sandbox Code Playgroud)

java heap

4
推荐指数
1
解决办法
511
查看次数

C++ String to double解析异常?

在java中,如果我想创建一些可以接收双打和字符串作为适当输入的应用程序,我可能会执行以下操作:

String input = getInput();//
try { 
    double foo = Double.valueOf(input);
    //Do stuff with foo here 
} catch (NumberFormatException e) { 
    //Do other validation with input
} 
Run Code Online (Sandbox Code Playgroud)

你会如何在c ++中做到这一点?atof()对于无效输入返回0.0,但是如何将其与"0.0"的有效双精度区分开来?顺便说一句,我只能包括<iostream>,<string>,<cstdlib>,和<cassert>在这个项目.我假设我需要以cin某种方式使用,但是如果在cin将一些字符串解析为double 之后如何才能获取原始输入?

编辑:我可能会使用以下内容,但正如我之前所说,<sstream>由于某种原因,我不允许导入此作业

string input;
getline(cin, input);

double x;
istringstream foo(input);
foo >> x
if(cin){
    //do manipulations with x
}
else{
    //since it's not a number, check if input is a valid command etc..
}
Run Code Online (Sandbox Code Playgroud)

c++ string double

2
推荐指数
1
解决办法
3383
查看次数

标签 统计

java ×2

c++ ×1

chaining ×1

double ×1

heap ×1

ios ×1

optional ×1

string ×1

swift ×1